Pros
There're tons on opportunities at Microsoft if you're only only focused on your day work, like: * study different programming languages or new tech on dozens of trainings which are offered regularly * non-tech trainings (like Psy, or PM or Agile) - it's hard to find such things outside * selecting the team to transfer to in internal hiring site (with lots of filters by place/level/keywords/...) Besides, Microsoft offers great salaries, which are hardly matched by startups or other companies.
Cons
* it's a seat-keeping culture. meaning that people are "working" there to keep the good salary/benefits forever, and not to deliver a good product or some value for the company. that may make you very angry if you're a delivery oriented fast paced developer. but there's no point in arguing or "escalating". because you'll most likely to escalate the issue to somebody who's also "keeping the seat", and they will most likely get rid of you rather than break their nice and safe environment * if you're outside of Redmond campus, it'd hard to find somebody from the interesting team with whom you can talk face-2-face, because almost everything about development is in Redmond. outside are mostly only Sales, Evangelists and minor development, which flows into Redmond slowly anyway.