Software Engineer II • Former Employee
Pros: The only pros I can see are: the work experience at Microsoft helps in finding jobs at other companies.
Cons: You would be like a frog in a well, oblivious of any other developments going on in the industry.
Very bad work/life balance, often overworked just to impress the manager, and almost all managers expect this. Ironically, the overwork does not result in a better product, since only grunt work paths are chosen and smart work is not valued. Every manager treats their reports as slaves, and that's across the company at all levels.
Even in some of the best divisions, product groups in the company, where the use of 'advanced algorithms' and 'distributed computing paradigms' are mandatory, the engineers are very incompetent, and most of them think like application developers.
'Large scale computing' at Microsoft is a big joke.
Promotions are completely random, highly political compared to any of the companies in Silicon Valley.
In short, you are treated like a daily wage blue-collar worker, with some good health insurance.
All the good ratings for Microsoft here seem to be either from people who have not realized yet that they are stuck in a mire or who have benefited a lot from corporate politics. For those who don't realize, there will be a very hard way out if you work there too long, when you want to get out, since the technologies used, quality of work, and analytical skills learned at Microsoft will hardly enable you to find a role even at a mediocre Silicon Valley company.