There are many reasons to work at Microsoft, though I'd highlight two that stood out for me:
Microsoft's culture is strongly philanthropic. This characteristic, set foremost by Bill Gates, has continued to imbue the culture of the entire company, down to individual employees. Its annual Giving Campaign elicits participation from nearly all employees. At Microsoft, it's quite common to support coworkers towards their charitable causes, and to talk about charitable giving regularly. I thought that was common to all companies, but it's not -- it's actually relatively rare to have a company culture that has philanthropy so close to its core.
There are a lot of choices for what to work on. Server to client, consumer to enterprise, software to firmware to hardware -- there's just a boatload of choice to switch around in the company. Though I always stayed on the software side, I managed to work in Office, MSN, Windows, Tablet PC, and Bing Search during a span of 12 years.
Seattle, despite what detractors say, is, in my opinion, an amazing city to live in, especially if you have (or plan to have) a family. It's very progressive, huge on the outdoors, has amazing summers, and also has the nation's highest percentage of college grads, which makes for interesting conversation wherever you go.
I'm sure it used to be a good place, but I've found so many examples of really bad management and a lack of (real) commitment to work, products, or customers.
I haven't seen a good example of teamwork in years. Also, nobody cares about code quality, technical expertise, or all that matters in building great software.
Most Principal and Senior engineers I've seen are mostly consumed by the politics created by their managers or upper management and worried about their own performance reviews rather than taking responsibility for the product, people, or customers they are getting paid from.
Every year, I've seen two things constantly on my reviews: "Technical awesomeness" and "Improve on communication" (from multiple managers).
Actually, I think I'm just an average developer, and I've seen (technically) awesome people elsewhere.
The hardest thing at Microsoft is switching between teams if you're not well-connected.
The technical quiz asked me many hard questions related to software development and project management. The call kept losing connection, but luckily the lady was friendly about it, and we continued the interview where we left off. Overall, it was a
Interviews are ridiculous! Know your data structures. That's all I can say.
- One round, two interviews with two different teams (60 minutes each) - Questions are typically tailored to the type of team or organization you're being interviewed for. - Interviews are half technical and half behavioral. - I was notified of an of
The technical quiz asked me many hard questions related to software development and project management. The call kept losing connection, but luckily the lady was friendly about it, and we continued the interview where we left off. Overall, it was a
Interviews are ridiculous! Know your data structures. That's all I can say.
- One round, two interviews with two different teams (60 minutes each) - Questions are typically tailored to the type of team or organization you're being interviewed for. - Interviews are half technical and half behavioral. - I was notified of an of