In my experience, I haven't gotten along with 9/10 people I've met who work at -- and are passionate about -- Microsoft. It's not because they're not driven to succeed (they are). Nor is it because they're overly confident. It's because all 9 have lacked empathy and/or the ability to listen. Now I can tolerate that, provided you do great work. I've learned that if you can't separate the art from the artist, you may n…
Realistically, what "great products" has MS produced? From my perspective, MS has always been vastly better at winning the market because they're nearly always competing with inferior products.
linux was the least mature. The kernel was a maze, there were 3 similar-but-fatally-different APIs for modules depending on where you graft them in (app, loadable driver, kernel driver), only 1 model of memory mapping was supported. And the code quality was very low. Nearly identical complete methods for trivial differences in argument (instead of calling common code). The same variable names used in different places for very, very different things (e.g. 'page' used for a page table entry, a page table pointer, a page directory pointer, a page directory, a page directory entry...) Spaghetti style code paths.
A large company like MS may have no coherent ethics or direction. But they have Lots of resources to actually, completely, exhaustively complete a code module with everything tested and in place.
So the products may not be great, or apply perfectly to solve your problem. Consider we're developers and our problems are pretty not much on MS's mind anyway. But they are responsibly coded and completed, which is a big thing.