Pros
The work-life balance is great in my opinion. I can schedule my time off as I need to as long as it doesn't impact my work. I work from home all the time and can work various hours should I need to. There are tons of international opportunities and domestic opportunities. As a software developer I've seen all sorts of interesting client locations that I would normally never experience. They support tuition reimbursement and offer various training opportunities. They offer stock purchase at a discount, 401k matching at about 80%, and other nice perks.
Cons
I hate billing to project numbers. Every hour is recorded to a number to charge it to. If I work 79 hours a pay period I get paid for 79 (I'm salary) if I work 100 and they not all client billable, I get paid for 80. If they're client billable I get "straight time" even though they're charging like 3.2 times what I get paid.