Been there, done that. Never again.
Federal government consulting firms hire warm bodies at the lowest price possible. They are the people who employ the college students from Java shops (because a degree is a must, of course) who barely learn Java and then grow up to never touch another programming language in their life. Knowing anything from MS or Oracle is double plus good for your resume. You're totally replaceable to them and treated accordingly. Anyone competent or specialized is generally hired as a subcontractor to the main contractor and not by the government itself.
Government IT employees are nigh-unfireable and they know it. They're about 50% people who've transferred in from other Government positions because they know it's easy or they're former contractors who join the government so they have a stable job. The government managers who vet your deliverables and the upper managers who make contract decisions, well, they're just the previous technically incompetent people who've stuck around long enough to get promoted up.
As the individual contractor, contracts are usually 1-3 years so you're constantly always up for being laid off or moved to a different contract. Your company is notoriously stingy, but that's mostly because they're not paying you for competitive skills, they're paying you because butts-in-seats means they get their lucrative contract rate that's at least 4x more than they're paying you. Since only behemoths of companies can even afford to try to land federal contracts, your employer has a large amount of corporate bureaucracy you have to deal with and that sucks... then you're sent to a government facility to work, where you get to deal with government bureaucracy on top of your internal crap too. As a contractor, between both organizations you'll get to take hours upon hours of totally useless 'computer safety, ethics and public responsibility trainings' which are mostly written so 4 year olds can understand them.
The government technology you work with is generally 5-10 years behind the curve if they even pretend to maintain something. As late as 2010 I was working on a J2EE app trying to migrate it to Java 5. It was stored in Visual Source Safe 6, and their development shop was totally crippled by what was essentially "God objects" and file locking. Too many developers, too many chokepoints in code. I've spent more than 1 day of my life walking around a building asking if people really needed a certain file locked. Oh, and many government employees worked 9-40 compressed schedules and are out on Mondays or Fridays, so you'd better not need to write to a file except on Tues-Thursdays, even if it is critical to meeting a deliverable deadline.