I have a singed employee agreement with the Microsoft SQL Server team based in Redmond, WA. Besides I've just passed the 2nd round interviews with the Microsoft adCenter team based in Dublin, Ireland. Two facts above make me think I have enough experience to share with newbies to help them feel more confident.
The first thing you need to have sending your CV to the Microsoft is a patience. It may take a few month from CV submission date till the job offer (in case you succeed).
Microsoft recruiters take you through 3 rounds of the reviews:
  • 1st one. Your CV is reviewed and matched the job requirements. This is the shortest round and you may be contacted within a week with the second round interview proposition.
  • 2nd round appeared to be the longest one. Generally you will talk to different people on the phone. You'll be asked technical questions and tested in different aspects like basic knowledge, background depth, logical thinking, etc. Finally your team player skills will be tested by the HR department in 30-45 minutes call. Since HR is the one who makes the decision whether you match the requirements you'd better stay focused during this call and answer exactly what is asked. Do not inventing anything. Be honest. When this round is over you'll be contacted in a few weeks with the outcome. In my case it took them one week to make up their minds.
  • 3rd round is mostly technical. You'll be invited to talk face-to-face with Microsoft employees. I talked to 5 people from different departments with different problems. Some of them ask algorithms, some asked me to test the function and a few people came with their problems in projects asking me to help them sort the problems out. It was very interesting! The most amazing part of the process.
Once you're over with these interviews you have to wait another couple of weeks. They got a lot of candidates and it takes the time to handle them. It is almost impossible to influence their decision during this period of time so just relax and go back to your ordinary life.
When I was interviewed for the position in theĀ  SQL Server team I talked to 7 people in general. Microsoft adCenter team has feedbacks of 4 people so far.
I'm not sure if I'm allowed to disclose the details of the interviews so I'll give the most general advices.
If you wish to be an SDE (Software Design Engineer) at Microsoft you'd better pay attention to:
  • Linked Lists and Trees (they're all crazy about them)
  • Testing. Test your code 100 times before saying you're done. Test overflows, underflows, corruptions, invalid arguments, concurrency, stress test, etc. Think of as many cases as you can. Even a simple function may be very tricky
  • Object Oriented Paradigms and Patterns. This part must be perfect since you may be asked to design a solution
  • Math problems. There are lots of well-known mathematical and logical problems described on the net. They may concern apples, plums, other fruits, vegetables and plants, human, etc. . For instance, there's a problem of 3 lamps in the room and 3 switches outdoors. You need to establish a correspondence between switches and lamps when you walk into the room.
  • Refresh the standard matrix operations and classical problems like searching for the shortest path in the labyrinth.
If you apply for SDET (SDE in Test) position you may be less overparticular about the designing skills. Study all testing techniques and approaches. Learn the product life-cycle by heard!
Well that's it. Hope it helps. Let me know if you have any other questions.