Pros
Get to work with technology that makes a difference for the US Navy and the defense of our country. Get to work with other engineers and smart, dedicated people. Get Federal holidays. Initially, was able to work from home.
Cons
The biggest Con would be the lack of organization. You're hired by a private company but work for the US Navy. Because of this arrangement, you essentially become a gov't employee without the job security, GS payscale and healthcare benefits but are exposed to and have to work under a disorganized department. When I began to work for NDI and the dept that worked with the new elevators for the new aircraft carriers, they had some of the proper tools in place but not organized in a way that was consistent with industry standards and conducive for high productivity. Their development environment was practically non-existent (no IDE, just notepad) and their test program was not supported. Most of the programs they used were unlicensed and were in trial run meaning that you only had a stable test environment for about an hour max. I have never seen such a bizarre setup before. Especially for a dept and work site were millions if not billions of dollars are flowing through. When I left, they were starting to bring those tools together (VCS, IDE, pull requests) but were moving so slow that it practically didn't make a difference.