Pros
A very positive group of people to work with. The majority of my managers and coworkers are understanding of problems and would rather get things done than point the finger. Strong culture. They work hard to run company events where people can play together and build up a sense of teamwork. Good pay and very good benefits. The work is engaging. There's very little boilerplate of busy work. You are generally solving tricky problems and developing interesting features.
Cons
They've got technical issues that can be fixed, but you get pushback when you try to set aside time to address it. The drive is on delivering new content. Things you know could be better are left frustratingly on the back burner. No care or priority on R&D or creativity. Heaven help if you try to work on something that wasn't approved by management. Either you'll be told it's a poor use of time, or they won't acknowledge your efforts at all. No appreciation of going above and beyond. Do your 40 hours, but no more. Your extra work is not appreciated by management, and the extra work you do to try to help the company be more competitive won't be remembered. Poor re-use or rework of functionality. Whenever a new feature/functionality is desired, the drive is to recreate entire systems from scratch, regardless of how well existing systems worked. This has led to lots of code and feature duplication, and lots of failed projects. They don't always seem to understand what they've already had built.