Software Development Engineer • Current Employee
Pros: You typically stand at the frontline of technologies. You have relatively easy and direct access to the source code, spec, and the people who wrote that code. You can get information outsiders may not get.
There are also a lot of training programs and knowledge sharing through various technical discussions.
In one word, the best place to learn the Microsoft technology stack (of course).
You get a chance to work with smarter people. You benefit from it by pushing yourself beyond your limits. Of course, you also have to work with mediocre ones as well.
Great benefits package.
Cons: With the expansion, there's more and more bureaucracy and politics, and less and less innovation. Now there are plenty of people working on internal development and release processes, rules, and guidelines; way too many of them are invented.
There are redundancies and waste of resources, both by developing them and time spent to learn and adjust to them. Every couple of years, there are definitely new internal tools and processes replacing old ones with no good reason.
Now it is evident that to advance your career, you need to go with the managerial track, where senior technical people now spend time doing administrative work. Also, people good at the political game get promoted fast. People can argue this is inevitable to a big company, but no one can argue this is a good thing for a technical company.