Pros
Good pay, Stable job, Lots of technical resources, MSR has tons of cool stuff going on (but you need a phd to join)
Cons
Slow-moving (though some groups are getting faster), Hard for young, passionate people to make a true impact - stifles your desire to want to keep trying to change things, Stuck in MSFT tech stack (.NET), Bad resume brand if you ever want to go to a smaller company, Too many PMs often slow things down instead of help, Can develop a bad mentality as dev since focusing on testing is "not your job", Benefits aren't as good as companies in the Bay area, Management/teams are very hit and miss, Culture just isn't that exciting- lot's of 10+year vets (which isn't necessarily a bad thing), but it doesn't seem like many people are eager to shake things up. Many teams don't seem all that necessary (their cost:output doesnt warrant existence), or don't have clear goals (think internal tool teams, etc) As a young person, I think it's probably better to end up at a place like Microsoft later in your career.