Pros
Recognition of the company name by general public. Employee discounts/benefits. Free meals at times. Company hierarchy is pretty flat, easy access to upper management. Developers, QAs, marketing, documentation, managers, ...etc. all work together as a team, in constant communication. Most of the first line manager are very technical, often required to code just like the other developers, so it's easier to communicate with the manager. Get to work on great products that have profound impact on people's daily life.
Cons
Telecommuting is not encouraged. Some pressure to keep "innovating" and coming up with new ideas. Hard to keep with the fast pace and long hours. Burn out work schedule is expected for at least 2-3 months before every major release. Even during non-deadline time, the younger, fresh out of college students would volunteer to work nights and weekends for no apparent reasons. The culture makes the work/life balance harder for those who have family.