Pros
Working for MS can be amazing if you find the right team that will make you code alongside some great minds. They pay good money because their level of exigence is also pretty high. The offices are very nice with cafeterias and lounges. More and more corporate activities are being organized if you want to volunteer, etc. The perks are good for Full Time employees and depending on your agreement with management, they're flexible with working from home. It's a truly open, tolerant, multicultural working place, with great opportunities for women.
Cons
The Montreal office management sucks. That's it, I said it. They're obnoxious and pretentious. Some of the HR people can be a**holes too (one of the reasons I did not want to become FT). Once you get over that, the technical managers will make up for it because they're mostly excellent (technically + humanly). I wish there was a company restaurant, Old Port is horribly expensive and I don't always cook my meals in advance. Finally, it's a bank and despite all the nice things they try to promote, they're still contributing to some nasty stuff...