Pros
I got paid a lot and did very little work. My coworkers respected me.
Cons
Epic incompetence and waste of resources. This company is trying to create a complex system that has a multiple hardware components interacting within the constraints of safety. I wouldn't trust them to create a mobile phone app that would open without crashing. Basic software knowledge is non-existent, at all levels. Most developers are academic types who spent a weekend reading a C++ blog or doing some cert and thus think they're genius programmers. Very arrogant, stubborn and egotistical. Most code reads as though the writer discovered a new C++ technique and decided to experiment with it in places it doesn't belong. The codebase is really the most nightmarish I've ever seen. Managers are of course even less knowledgeable. JnJ has a system where anyone who asks can go into management training to become a manager. There is no real merit-based promotion of people into managers, it's just based on whoever asks. In practice this means that the least competent people all become management because the more competent ones are just focusing on leaving the company. Why would a competent person want to manage completely incompetent people in a failing project? They don't even try, so they just leave. I could write an entire book on the problems and crazy absurd things that happened to me while I worked at this company, but it all comes down to general incompetence. Nobody understands software, yet that is what they are tasked to create. The product release is always pushed back, and each time more dramatically. At first it was "just next year!" Then when that was missed it was "ok, just one more year!" Then, "two more years." Finally, "three more years!" The ultimate delivery date is receding, not approaching. I find it really hard to believe it will ever be reached. You have a product that is supposed to be used for surgery. It is safety critical and must be very robust. Meanwhile engineers can't even do their on-hardware testing because it crashes literally constantly. At one point the management sent a congratulatory email to the company for getting 75% uptime. Seriously. Would you feel comfortable going into surgery hearing that? That 75% was itself highly inflated using "cheating" techniques like keeping the system running even when not in use. The company feels like it is always scrambling to just get over the hill. Everyone is in denial. The problems are far more fundamental than "just a few more features/bug fixes." There are fundamental problems with the very core of the SW in almost every module in the entire system.