Pros
When I started, the perks were great, the co-workers were enthusiastic and passionate, and the company was growing. The culture was infectious and there were plenty of company social events such as food trucks, wine/beer tasting, team outings, company-wide hackathons, and the list goes on. Many, many opportunities to grow in your career. Also, the compensations and stock option offer wasn't too bad given the company's size.
Cons
Engineering: Waaay too academic. This is a company that essentially founded and pioneered "Continuous Deployment" that so many startups enjoy today. Given that, it feels that we have to hand-roll every single thing when there are plenty of outside libraries that are solely dedicated to solving some of these problems. Why do we have to write our own 3D engine? Why do we have to come up with our own Data warehouse? Continuing with academia, somebody convinced the company to introduce Haskell into our tech stack. It's not that Haskell is awful, it's that it made absolutely no sense from a business perspective. We've been using it for roughly 2 years and only about 6 or 7 engineers of about 60 know how to use if proficiently. Compounded by the fact that we haven't been able to hire many Haskell experts! Also, too many people care about the tech more than the product or customer experience. Many people refer to what Facebook or the next big company does to support their technical suggestions instead of just solving the problem the way most normal companies do. Management: This is absolutely abysmal. Absolutely no product focus. Whatever makes the quickest buck wins. Quarterly goals are finalized once the quarter is halfway through... Once goals are finalized, everybody in company works at break-neck speeds to try and deliver a quality product in time. No wonder company morale is low and so many people are quitting. Meanwhile, companies are choosing to go "mobile first" and our mobile teams are second class citizens who had to "prove themselves". Completely resistant to massive change so we end up with these "partial" solutions and end up supporting more features than we should.