It used to be a great place to work.
Pros
The people are great. I made a lot of friends there.
Cons
I worked there for 5 years. As soon as I turned in my notice that I was leaving, for the next 2 weeks, not one person in management talked to me. Actually seemed like they even avoided eye contact. Not one said thank you. Not one said good luck. Not one said anything. So The BIGGEST con of all is that you will work there, and do everything you can for the company, and when you feel that you and the company are no longer growing together, they will feel betrayed, and will shun you for the rest of your time there, making your time there feel unimportant, and meaningless. Flat team structure for development, but Management still pushes technology choices and makes all the decisions, or overrides the teams if they don't agree with the decision. Management imposes unobtainable timelines. Management will make the technology choices (not on everything), and then when it doesn't work, or isn't completed by when they said it should be, they want to know why you didn't finish it by then. Product Management doesn't know what they want to create. They change direction constantly. More trust is taken from the word of a consultant than their own people. If a consultant says they need to use 'NewWidget', then they use 'NewWidget'. If the consultant says 'SuperWidget' is a dying technology, even though it is the industry standard for Widgets and it is being used in house today, then they will ditch 'SuperWidget' for 'NewWidget'. Management likes to use 'Trust me, i've been doing this a long time' as the reason their choice is better than yours. A lot of responsibility falls on the Engineering team if they don't know who 'owns' it.