Company: Microsoft
Date: 2012-09-07
Overall rating: 3/5
Employment status: current
Experience level: Junior

Good pay, good benefits, great work/life, bad everything else
Pros: The pay is pretty good. Not the best in the business, but definitely above average. Same with the benefits. They really shine with the work/life balance. 40 hour work weeks are the norm (while at other companies its typically closer to 50 or even 60).

I also have to commend Microsoft for being very charitable, community-focused, and progressive. They match charitable donations up to $12,000, sponsor volunteer events and giving campaigns all the time, and extend benefits to domestic partners (among many other things).

It's not a terrible company, so don't let what follows color your opinion *too* much. I would still rather work here than most places, mainly because almost every large company has the same problems Microsoft has. However, a lot of the cons below would be solved simply by working for a smaller company, possibly a startup.
Cons: The culture is very much "show up so you can get paid". Around 10% of the people here are passionate about their work, the other 90% just show up and may as well not even exist. Good code design, actually getting things done, and doing them correctly aren't priorities - management puts all of its emphasis on the concept of "visibility". I like to describe it as being the loudest, most obnoxious person in the room: screaming and yelling while flailing your arms around works. But honestly, you need to go to meetings; lots of meetings. And you need to ask questions at those meetings so it looks like you're participating. Even if you already know the answers (or weren't paying attention or are just plain stupid) and all you're accomplishing is slowing things down for everyone else. And if you have an opportunity to pick a project or team, you need to pick the one that people care about the most. Even though you're on the same team as someone else and even if you're less productive than them, if you're working on the high-profile project then you'll get all of the attention. Or "visbility".

Visibility is the only factor in promotions and bonuses, provided you get your work done. Went the extra mile? Did twice as much work as the other guy? Cleverly fixed a long-broken and frustrating system? Unless those things directly impact the visibility I called out above, no one above your management leve cares, so enjoy your average review rating.

Team budgets are also divided by the impact of your work. Teams working on lower-profile products don't get as large of a budget as other teams, so promotions/career advancement is slow because your manager doesn't have the budget to promote you. The quickest advancement occurs in the Windows organization. Xbox/Bing/Windows Phone are all young, but I imagine the same trend will appear there if they prove to be successful.

There are also a ton of (for lack of a better word) "older" people at Microsoft. Very traditional, 9-5 types that are *very* stuck in their ways. And a lot of them (particularly the ones in management) think everyone else should work the same hours as them. "Flex time" allows you to work odd hours (I usually come in around 7am because my fiance works mornings) when you need to, but it seems a good portion of the company hasn't caught up to the idea, and frowns upon it.

You'll see this at a lot of the old, big companies, but there is a lot of redundancy in management here. The sort of people where you look at what they come in and do every day and you think - couldn't they just have someone else do that for ten minutes at the end of each day?

It's a very reactive company, and takes too long to react.

There's too much red tape. Proposing new features or even getting rid of old, useless ones is a trying process and usually not worth it.

Management puts a lot of emphasis on "training" - both internal MS training and external offerings, but they're always worthless and if you never go to them people wonder why you don't want to broaden your knowledge.

If you're new, no matter how much experience you have you'll be treated like you don't know anything and need your hand held (no one actually read your resume except HR).

The hiring standards for teams outside the US are *much* lower (and I personally think they're already too low in the US), so if you get to work with them then prepare to be frustrated daily.