Pros
Great opportunity to grow your career. There are vast number of different teams that operate on different principles, different goals, different technologies, you can almost always find a career path that interests you. The ability to work with some of the brightest people out there is something that's often overlooked and taken for granted while you are at Microsoft. Imagine any technical issue you run into, you have access to unlimited technical people, including those that designed the feature. This is invaluable to those geeks like us.
Cons
The size of company has grown to a point where there is too much bureacracy. Decision making are slower than a startup. There are many hoops you have to jump through sometimes to get everyone to buyoff, which means you spend more time on process rather than core engineering.