Vantaggi
* I've experienced a pretty healthy work balance. But it can very much depend on your program, for programs that are behind schedule and over budget it can be awful. * Pension and decent benefits. * Job security. I've never personally seen or heard of anyone getting fired for poor performance, only misconduct. Layoffs are pretty much non existent. * If you're a good engineer it's pretty easy to stand out and be recognized. Though it's not necessarily going to be reflected in your paycheck. * Depending on your program you may be able to work from home a few days a week. Not clear if this will be permanent change yet.
Svantaggi
* Tech stack terribly out of date. Refuse to use modern tools, frameworks, and development practices in favor of in-house tools that are just awful. * Painful and archaic software development process. If you want to work somewhere agile run far, far, away! * Practically no automated testing or CI/CD. * The experience you gain will have little relevance outside of other large defense contractors. * There is a good chance you will spend more time dealing with bureaucracy and red tape, writing emails, and dealing with terrible issue tracking tools than actual writing software. * Software Engineers end up doing more System Engineering than the actual System Engineers. * IT and DevOps support for software is practically non existent. Current "security" measures make life hell for developers. * Good Software Engineers either end up leaving or going into management. There are little incentives to stay on the technical route compared to other companies. * Your pay will most likely slightly below average and way below some of the big tech companies. * Upper management is oblivious to all of the above.