Pros
You get to learn a lot about consulting, not just programming. After some years you might be ready to go by yourself as consultant. Friendly environment, good local management, very capable engineers to work with. You get to learn modern technologies since we work mostly with Silicon Valley startups so you get to be up to day with the best of the market, which keeps high your value as developer. Paid lunches every wednesday, health insurance for employees and their families and gym memberships. Top quality hardware and software. Flexible schedules, the most important is to get the job done. You get to work remotely at max of 2 days per week. Ping pong table and PS3 to take breaks and get some fun. Good salaries.
Cons
Performance is not rewarded, top management does not keep a consistent set of metrics to evaluate employees. Developers don't get any objective feedback of their work periodically or once an account is closed, neither at the end of every year. This is discouraging. Raises are rare, bonuses are exclusive for team leads regardless of how good the performance of developers might be. Also discouraging.