Pros
Great developers to work with Everyone is willing to help Awesome compensation and perks
Cons
Software engineers are expected to shoulder the additional responsibilities usually allocated to a product manager such as planning and prioritizing work. The tech support team was dissolved so developers were also expected to cater to non-engineering requests. There is a pattern of managers making out-of-band requests to developers and then getting frustrated when the results are not as anticipated. For instance, upon being off-handedly notified of a bug, it is not enough to fix it. It was also assumed there would be a comprehensive root cause analysis to anticipate and mitigate similar future breakdowns. That may be a reasonable request but when the expectations aren't clearly communicated from the outset it just leads to frustration. They have a flat structure for engineers (everyone's job title is .NET Developer) which makes it difficult to see any sort of career path.