Pros
1. Good Benefits for new grads with a 100k+ base, sign on stock, and yearly bonuses. 2. Fairly simple promotion route (can be promoted every 1.5 years if you're slightly above average) assuming you're in a growing Organization (Cloud + Enterprise is hiring and growing, so it's more easily get promoted there than in a well established organization like Windows or Office. 3. Work Life Balance is really up to you. I have seen people come in every day and work less than 40 hours a week and still get promoted (albeit at a slower pace than others) 4. Looks good on the resume, and there wont be a shortage of recruiters reaching out to you.
Cons
Microsoft was once the Mecca for Software Engineers. While it's now still prestigious, start-ups and other big companies (FB, Google, Amazon) are held in higher esteem. The company is still trying to become more agile in nature. They've done this by laying off staff, and converting all SDETs into Software Engineers. Due to the conversions, some organization are still figuring out what to do as they now have people with decades of experience testing code who are expected to now compete with other Devs who have decades of experience writing code. Teams which run web services are slowly starting to release at quicker intervals, but it's still a work in progress. The culture is different in each org, so be careful of which teams you choose. Middle management is still embroiled in politics. Reorgs are also fairly common, so do not get to attached to one manager. You will definitely be the a small cog in a massive machine if you join Microsoft. You will not have much power to affect the company. So if you're looking for high impact work where you can be agile and heavily dictate the future of the product, then this may not be the company for you.