Pros
The pay and benefits are above the average; Flexibility to work from home and flexible times; Lots of smart people and experiences to learn from; Lots of divisions and opportunities to work in different projects.
Cons
Still "rock-star" culture, where vocal / connected people take clear advantage (sometimes over the work of more skilled but less loud colleagues). Little team collaboration; Still "bubble" culture: whatever exists or you have done outside MS doesn't mean anything; "Old thinking" in most senior/leads, with practices and methods that have been scrapped more than a decade ago (e.g. waterfall, lots of planning and documentation); Too many managers, many outdated (above), others totally clueless about the skills for their work (e.g. test leads that don't know unit tests and CI). Little autonomy for individual contributors (every single technical decision must go through managers)