Pros
This is without contest the best company I have ever worked for. Everyone I got to work with was super talented and driven to build the best software possible for our customers. The technology stack is constantly evolving so there are many opportunities to learn something new and get hands-on experience with a wide variety of tech. There's a strong culture of producing high quality work, collaboration, and self-improvement through Agile sprints and yearly company-wide Start Stop Continue meetings. I was very happy with the total compensation and benefits provided.
Cons
Being a flat company, there are limited opportunities for career growth. The work can be a little repetitive, so switching to new languages and frameworks to keep things interesting is common. This can be a positive thing depending on your point of view. There is a strict requirement to work 40 hours per week which makes it very difficult to socialize. Timesheets are taken very seriously. And the software to do it is so painstakingly bad. This is probably my biggest complaint.