Pros
Company is politically very matured, in terms of all details in policies, activities, learning resources, caring for people, etc Company cares people very much: strongly supports work/life balance, advocates 20% office hour in courses learning, provides top-level resources such as gyms, shuttles, snacks, campus environment etc Company is very famous and people are respected/admired by outsiders Company has a unique position "Program manager" which other companies don't have: it's a lowest level position same with SDE, but it strongly develops people's soft skills -- inter-personal skills, think bigger, manage teamwork, improve product life cycle, etc.-- a really great position to gain growth rapidly!
Kontras
A myth here is, PM, Dev and Test are "3 pillars". In fact PMs are the most important one here -- they're half the leadership team. They're also under the most workload. Devs are the most cost effective -- least workload, mild-paced promotion. Tests are the most tedious and of the most workload, and least participated in strategic discussions in all. Being in such a monster company, no one has high efficiency -- sometimes >50% time is spent to handle ugly labor cases such as upgrade, side by side, security, backward compatibility, etc; many bugs on >10 year C/C++ codebase need to be fixed before being able to write in C#; huge external dependencies on other timezoned ares (typically Redmond) are painful, you have to mail them a question and get reply tomorrow, then you modify your question the day after -- typical global-scoped work is as slow as crazy. But the worst thing is the shabby manager level. As a 3/4 year old campus, most managers and leads are less than 3 year in microsoft, most of them are Chinese industry hires from companies not comparable to Microsoft; thus they share a common serious problem, lack of leading abilities and real insights. A bunch of mediocre leaders are ruining the great dreams of excellent 1-from-1000 engineers.