Software Development Engineer • Current Employee
Pros: Good name recognition in your resume. Get an idea of the scale of work in a big company.
If you are a manager, it's a cushy ride. If you are an employee, it's very difficult for a developer due to constant deadlines and demands. OK for program managers and testers.
Cons: Too much process and bureaucracy. Constant change in direction is normal. It's common to reset the project direction every few months and start from scratch. Stack ranking (where employees are compared to each other in their level every few months and forced into a curve distribution) is brutal. If you are a developer here, you don't feel like you are competing with other companies to deliver a better product; instead, you are competing with your coworkers. Coworkers will not help each other; instead, they will backstab each other so that they finish higher in the curve. It is a bit easier if you are a program manager because you don't have any real deadlines. Developers have a deadline almost daily and put in crazy hours in most teams. It's also easier if you are a lead, since you typically would delegate all work to reports, get credit for all successes, but are typically not blamed for project failures.
Managers have to fill up slots between 1 to 5 (performance grade) in their team by force. This is called stack ranking and is very political. About two months of the year, managers just spend time doing that. Typically, they pick the least favorite employees for 4 or 5. And by HR rule, they have to constantly tell them they are underperforming so that those employees leave soon. Also, internal transfers are only possible for people who get a 1 or 2 rating. The other employees are ignored during internal applications.
There are also many ethnic cabals inside there.
There is also an official internal effort to force out older employees and replace them with younger employees. For managers, though, there is no such effort. Managers are treated as gods by the company.