1) Top Con: The pay was below market for engineers - one of the main reasons I left. This valley is too expensive to handle and an extra cash really helps.
2) Because of 1), a lot of good talent leaves soon. And a lot of previous veterans left as well (either because of the stock price not having decent swings or just politically ousted).
3) Tech stack was really inefficient (that's right - stubborn architects - hope you fixed it at some point!) - from release management to the actual software deployed - it was too bulky to manage. One huge eclipse/ant project - divided into packages pertaining to different teams - and then deployed in one shebang - yikes! There was always a lot of issue with performance (inefficient use of db pools, ORM abuse, etc) or regression because some team inadvertently modified an overlapping package. A proper process for code reviews was inexistent - was done unofficially. Maybe it has changed now - but that was how it was when I joined.