Pros
Nothing about my experience at BAH was positive.
Cons
BAH is too big for its own good, and your experience will significantly depend on which team you fall into. The team that I was on was hostile and aggressive in ways that I believe approached illegality. They believed that all software developers had equal talent and skill, and saw the devs as entirely replaceable "butts in seats" that could be replaced at a moment's notice - so, it was in their best interest to burn those people out, in order to maximize their output until they hit the breaking point. Then, they'd just swap in someone new. This was an environment where tensions ran so high that in-office screaming matches were not all that unusual. I felt like I was in a truly hostile work environment, and like my work wasn't valued -- all the while being paid a significantly below-market salary with mediocre, at-best, benefits. Oh, and if you're not high enough in the firm to be winning new contracts, you're referred to internally as a "junior employee." It doesn't feel great when your business card says "Lead Software Engineer" and your manager calls you, to your face, like it's no big deal, a "junior employee." Avoid working here.