Pros
Lots of great coworkers. People really do have each other's best interests in mind. Flexible schedule. So long as you stay on track with your projects, no one seems to mind if you leave at 5. Hours are fairly flexible. Pay is decent, as long as you know how to negotiate. Office politics can often be sidestepped. Promotions are now a thing, but often require a minimum of 2 years work if you want to advance (junior > midlevel > senior).
Cons
Management often doesn't understand the impact of many of their seemingly-arbitrary policies. Some insanely good managers have left because they couldn't push for better work practices. Lack of training. It looks like the developers/QAs have the hardest time with this. There's a reasonable amount of documentation to help newcomers, but it's not well organized or maintained. PR is disappointing. Their Facebook is a mess and their Twitter went unused for years, but their digital presence has been cleaned up.