Pros
Projects are varied, so you'll get experience in a bunch of different industries. Monthly happy hours are nice, although they can become repetitive. Office is laid back and open, and you get a lot of leeway to work how you'd like to.
Cons
You have to beg for months for a promotion/raise, and even if you get one, it does not necessarily mean an increase in anything (salaries, benefits, etc.). Depending on the department, management can be absent or unhelpful. There are a lot of "personalities", and some do not mesh well with the open office vibe and/or collaboration on projects. Clients hold all the power, so you'll be doing what they want regardless if it is the best approach or not. Some long-time employees are opposed to new systems or tools, and would rather keep the status quo instead of making improvements in workflow or deliverables. Management can sometimes be loyal to a fault with consistently problematic employees or clients.