Pros
1. Teammates. Seriously talented. Some of the people you meet here are kind and courteous. 2. The projects are interesting and industry leading.
Cons
1. Yearly increment takes ages, with absolutely no guarantee. And when they do distribute them, it's as if they're doing a favor. 2. Higher management doesn't understand the importance of having a senior who can keep critical software systems stable. They think a Senior Software Developer's job can be done by an Intern, IT people aren't crucial for this business. 3. Every single development hardware is surviving on borrowed time. There's absolutely no guarantee they'll work fine. 4. Software team's managers can't even present his team's contribution to the higher authority. 5. Some higher authorities act like a bully. 6. There's absolutely no way they'll let you learn a new technology side by side.