Company: Microsoft
Date: 2008-06-11
Overall rating: 4/5
Employment status: current

Microsoft: It's an experience, that's for sure.
Pros: Microsoft is a force-multiplier. When you build products, 100s of millions of people will be impacted by your work. It's a company that respects individuals -- benefits are great, people are encouraged to speak up. It's a large company with many smaller companies and cultures, which means that if you don't like your current group, or you want to try something different, you can move easily to something else. Microsoft is ambitious, which is exciting -- there is very little that the company does not think it can do successfully. No other company has efforts in as many diverse areas (from games and consoles to compilers to high-end computing to massively-scaled software services). As long as you have confidence in yourself and your abilities, you can do pretty much anything.
Cons: It's a large company, there is no getting away from that. You need to be comfortable with that, and refocus on the group around you. As noted above, there are many different groups, each with their own culture, meaning that some groups suck. You also need to learn how to be effective, which means that you need to take care of not just *what* you do, but also how that work is perceived to be valueable to the group as a whole. You can't just do whatever you want and expect that you'll be rewarded. This can lead to perverse situations where people who are good at managing up do better than those who are not, regardless of their skill (I've seen this at companies of 20 people too, so don't expect any different here). 
Things can move slowly. Microsoft has been many requirements on software development that smaller companies don't (legal, privacy, security, compatibility, etc), which can make it difficult to buid even the simplest feature. You need to learn a certain amount of patience and zen when working here. 
Microsoft's brand is not well respected in a number of spaces (primarily consumer). This can be soul-sucking: you work hard on something, and it's not received as well as a similar offering from Google or Apple.