Pros
1) Great health benefits. Company is very flexible about use of sick leave. 2) Generous amounts of vacation/year, and vacation carries over from year to year (up to a certain point). 3) Company is relatively flexible about telework/flexible hours. 4) Work/life balance is pretty good. >95% of my weeks are under 50 hours, and I've never really had a week over 60 hours. 5) The work for the most part is interesting and impactful to society. 6) There are lots of opportunities to do different kinds of work, as long as you're proactive with your manager. (This may depend on your organization.) I started as a C++ embedded software developer, then transitioned to full-stack web development with modern Javascript frameworks, and now I'm transitioning over to systems engineering.
Cons
1) My organization has a very short term outlook. As in, priorities set by management change on a weekly basis. This I think is in part because Boeing as a whole expects its subsidiaries to perform well each quarter (I work at a Boeing subsidiary). 2) Raises suck. Better than inflation, but not by all that much. Promotion raises are bad as well and even after you've moved up a level, they don't increase your raises by all that much. 3) We are required to take a lot of useless training every year. It's perhaps useful the first year you take it, but not after that. 4) The career ladder grinds to a halt once you hit senior engineering level (level 4 and above, highest non-executive level is 6). Climbing the ladder while remaining technical is extremely hard to do, and requires a lot of ambition and a little bit of luck. Becoming a manager may be a bit easier, but by doing so you sacrifice your ability to do technical work. Boeing expects its managers to be people persons and nothing else. 5) Boeing is mired in bureaucracy. Trying to get things done through official channels (e.g. getting licenses for software) takes weeks at a minimum.