Pros
A lot of different tech, projects, and smart people to gain more experience and knowledge from. Competitive compensation and pretty good benefits (especially if you've been there for a few years).
Cons
Teams, that work on the same systems, do not communicate to each other much. People do the same work without knowing about it until it's too late. Some management tries to play a cut-throat game. Managers promise to the business some new products behind the backs of their colleagues and then pushes the whole team to achieve those goals before anyone got the same idea and implemented it. Higher management pushes for the following principles: "speak up", "it's on me", "innovate" and a lot of others. The actual team managers say that they very much agree with all of this to the business but behind their backs they say those principles are stupid and if you try to bring anything up to their attention you can get your bonus cut, your salary won't increase or they can even threaten you to be fired. All they care about is to deliver the requested set of features before the deadline. If it does not function properly during the release time they will start point fingers and blame other teams/certain team members/other managers. Anything just to prove their work is great and the reason we are going to miss the deadline is somewhere else.