Fun at the engineer to engineer level, but brutally long hours and badly disconnected front-line management.
Pros
Huge corporate upside potential (but might not apply to new hires as of 2012). Fun work environment (free quality food, game rooms, frivolity encouraged, etc.). High impact in terms of people using your code and recognition. Good opportunities to try new ideas and move teams.
Cons
Brutally long hours for many, frequent pressure to delay or cancel vacation plans (even outside of release deadlines). Harsh, unjust, and badly cross-team calibrated reviews coupled with frequent firings so that the stick is very close to the carrot. It has now grown large enough that internal corporate politics have seeped in. Management, at all levels, fixated on lots of shiny new features, no matter how broken, and lack of respect for necessary work getting done.