Pros
You get to work with some really talented engineers who are genuinely passionate about their work.
Cons
Overall leadership and management are a nightmare. There is a big communication gap between the managers and the individual contributors, such that often people in the higher-up either don't care or are unaware of the actual problems in development and production. This causes fatal bugs to stay in the system for months without a solution. As well, some of the management are clearly unqualified as leaders of their team. This leads to poor project planning and a lot of wasted effort by those who are being managed. The worst part is that when a project fails due to ineffective planning management, the individual contributor bears full responsibility.