Company: Microsoft
Date: 2010-09-04
Overall rating: 3/5
Employment status: current

Comfortable career, but not a place if you want to learn a lot and grow fast
Pros: - A lot of things are taken care so that developers can focus on coding. Program Managers handle requirement facing customers, talking to other teams etc, and priority is given so that you can focus on programming and producing results.
- For the technical/non-manager types: If you are patient, and can deal with occasional politics at the office, and have potential to be a product architect, there is really room to grow here. I hear at other companies that there is a ceiling for technical types, but here there isn't. They have career stage setup all the way from Senior SDE, to Architect, Distinguished Engineer to Technical Fellow. Of course, extremely few people amongst the talented employees of microsoft make it to level beyond Architect, but that path is there.
- In general, if you are pro-active, there is a lot of support you can get to learn how to grow and succeed at microsoft, in the form of mentoring.
Cons: - The review system is not fair, in the sense that the leadership team makes decisions based on their impressions of contribution of a team member, whereas your manager, and colleagues you work with on a project may know a lot better about your level of performance. Coupled with the brutal stack ranking system, and rewarding the top 20% the most, what this means is that you will get really burned if you think all you need to do is churn out great code, and work well with your teammates to release a good product. You need to actually spend time with leadership team, let everyone know what you are doing etc, so that you stay in the radar of the leadership team. 

This also means that there are very driven, smart people who end up focusing more on career growth, rather than releasing a great product.

- Company is very big, so a fair number of employees are bound to be quite mediocre. They really try to make sure that is not the case with developers though, but you can always find some useless testers or test leads in every team.

- Program Managers who are not product focused, but spend more time and energy on pleasing the leadership with presentations.