Pros
- good benefits & good salaries. Google treats its engineers very well, even in these economic times - very smart people, world class engineers (quality varies from group to group, though) that make very fun co-workers whether to discuss life, politics, or engineering - big impact. You know the stuff you build can affect, positively or negatively, millions of users
Cons
- inconsistent vision. You're never quite sure what senior management is thinking, or whether they have a master plan. In fact after working there for several years you're beginning to think they don't. A lot of decisions are whim decisions. Projects get killed on a whim and resurrected on a whim - launches & rollouts extremely frustrating. A lot of launch gates & reviews, some are understandable but some are quite ridiculous. Too few people control too many aspects of things.