Plenty of rote, unexciting work; twenty+ year old codebases
Pros
Hours were flexible; manager did not micromanage; bright coworkers; excellent health insurance; if you are lucky (and very talented), you might get to work on something very interesting. The company is huge and moving around from team to team can expose one to a variety of technologies.
Cons
Disclosure: I was working on a very old piece of software and had little exposure to some of the newer projects at MS. Furthermore, I found the weather unbearably gloomy (Seattle), which no doubt played a role in my overall dissatisfaction. Relatively few employees really get to contribute meaningfully (the rest are primarily engaged in useless work). The salary was relatively low. There was no feeling of passion of any kind in 80% of my coworkers. Internal "morale" meetings were a joke. There is an excessive focus on individual features as opposed to providing a cohesive user experience.