Pros
Stable job. Depending on projects, some can be relaxing, if you are in a unclassified project, you can work from home. Classified projects have more crazy hours. Benefits are decent. There are some attempts to modernize outside of classified projects.
Cons
Ineffective upper managers. I proposed a tool to use to my manager. I created a proof of concept that worked and reduced the manual process by 90%. Multiply this by X which could save the company millions of dollars. I had to pitch it to an even higher upper manager, lead director level. He shot it down. I quit that team due to major differences in approaches and joined a different project. Guess what, a C level manager got a whiff that the project was not modernized enough. Then a months later, they took what I had done before and placed their name on it and shipped it. I didn't get any "Thank You"s or "Good Job". Hiring managers don't care about your career. There was a time-span of a few months where I was jumping from project to project with no clear goal as to where I was ending up. When I said I wanted to work in Python, I worked in C++ instead. They don't care. This is not a company for young people to work in. Too many old people caked in there old practices. If you want to be impactful and learn, don't join, you will just be disappointed. If you want to learn best practices, there is nothing to learn here. No one so far I found was competent enough at there job. Its all bandages and no surgery. Technical debt is crazy high. Teams that say they do "agile" but are not, don't even include the word "iterative" in their definition of "agile".