Pros
* Flexible working time with fully remote option * Compensation is so-so, Microsoft actually pays the least of the big tech companies (at least as of 2025), if you can get in at another big tech company rather do that since you'd be dealing with a lot of nonsense in any big tech company for the salary you're being paid, make every dollar count. * Stock compensation can be good as long as the stock price are going up, but it serves as "golden handcuffs". If the stock price of Microsoft for whatever reason does not do well it is not worth working here.
Cons
* Mountains of red tape, stale documentation and bureaucracy that makes working here as an engineer dreadful experience. There can be days that you spend most of the day just navigating the bureaucracy that has nothing to do with actual engineering. * There's this concept of "One Microsoft" that tries to foster cohesion across teams; this is failing miserably as people are being laid off and teams are increasingly facing higher pressure to deliver on commitments leading to unnecessary push back across team boundaries. * Your direct manager (and skip level manager) is going to make or break you at this company. If your direct manager is not informed on the engineering side of things or cannot give much guidance regarding engineering processes as a senior/principal engineer, you'd have to pick up the slack for them and potentially do their job. Avoid new (less then 5 years at the company) managers, especially managers that do not learn on the engineering side of things. Try to get into a team with a strong engineering manager that knows what's going on, this will set you up for success. If you end up under a manager that do not know what they're doing (to determine this ask them technical questions and see whether they have at least some level of informed answer) aim to move to another team sooner than later. * Tied to the previous point, your direct manager can see when you apply for other positions in the company, know that this has the potential to sour the relationship with your manager which can impact your career opportunities at the company. * Engineers that stay at the company for a long time has to essentially work themselves into positions that are isolated from all the bureaucracy, red tape and potential cross team dependencies (think positions like code modernization that does not have a lot of cross team dependencies besides getting PR approvals).