Pros
Interesting project work, generally very smart and passionate coworkers; lots of room for you to set your own agenda/workload if you have a good relationship with your manager (managers totally depend on the person, too - some divisions seem to stack much better managers than others. I was fortunate enough to have a wonderful manager in my division who was the reason I stayed at ICF so long).
Cons
work/life balance is challenging when working on multiple projects - some managers will try to take advantage of you and get you to work extra hours over the required 40 per week, even if you are up front and clear about time commitments to other projects. There is a severe lack of support staff, so you end up doing work way above you for meager pay, and then get asked to do work below you on top of that that should be for interns/college grads. ICF seems to have staffed too many VPs and not enough analysts/associates/managers for fair pay and fair responsibilities. lots of talk but little action from upper management on investing in employees - always saying they are able to offer better raises, better benefits, etc. for the hard work current employees are putting in, but never once did that materialize. I left with college grads making more money than me after 5 years of work experience and an advanced degree, and didn't get fair adjustments after bringing that fact to upper management (along with a near-perfect performance review that should have stood alone as enough evidence). Unfortunately I later learned that this happened to a number of coworkers outside of my division, making it clear that there is a huge lack of upper management to invest in their current employees that are trying to get fair market value. Stay here for good project work, but always be looking for the next job - you will almost certainly be offered a higher salary anywhere else you go. Don't wait at ICF for them to fix it for you, even if you bring it to their attention and make a strong case.