I arrive at building 19 say about 45 minutes early, register with the receptionist, then sit down where there seemed to be other candidates. There was a hot Microsoft girl putting everybody at ease. She asked me how long I was staying in Seattle, and at the end of the day left me a list of restaurants, shops, and things to visit in Seattle. Really nice.
Not too long after my recruiting coordinator calls me to her office. She summarized how the day is going to work out for me, told me the teams I would be interviewing with that day, and with who my first interview will be with. She gave me an occasion to ask any questions that I may have and then asked me some questions, such as the famous “Why Microsoft?”. Then, she took me outside to the recruit shuttle and off I was to building 44.
After a quick shuttle ride, I enter the building, register with the receptionist, then sit down and wait. They have washrooms and water in the lobbies, though sometimes a little hidden, so you may have to ask. After awhile, my first interviewer came to pick me up to his office. We talked for awhile, then he gave me two simple programming questions, and then talked some more about me, the position and Microsoft. The second interview was lunch. The interviewer took me to lunch at the cafeteria, where we talked more about my projects, my education, etc.
The third interview was the most interesting one in my opinion. It began with questions about teamwork. The main question was how would I manage a situation where there’s a conflict over the way something should be done. Then, I was asked a whole bunch of questions on data structures (the interviewer used to be a data structures professor). I knew these fairly well
Then the last question was a hypothetical three-dimensional database storage system (imagine a three-dimensional excel spreadsheet). What data structure would I use, how would things work, etc? So I throughly discussed pointer-based, array based solutions, thinking out loud, raising issues, then discussing how I would approach these.
At this point, I was really happy. I knew I did well, and I would proceed to the next interviewer. I waited long enough for that one, which was a step harder than the rest. I got two pointer-related/string questions, which I solved relatively well. I started getting a little bit worried that I might not make this one, since my interviewer was expecting me to zip through these faster than I did, but, I did get the last interview.
The last interview was where I was put on the spot to enumerate my areas of interest, something quite difficult for a recent graduate, since I have not had lots of time to deeply dive into something for several years. Then, I was asked a logic riddle: “M people are standing in line. At each pass, you eliminate every Nth person. Who will be the last one standing”. At first, I thought this was a simple math formula, but it became evident that I needed to work out an algorithm, so I sketched schemas and pseudocode on the board to visualize the problem, and described an algorithm, of course, with some steering of the interviewer.
Once that was over, the day was over. I chatted with the interviewer while waiting for the shuttle, then returned to the recruitment building, and then back to the hotel.
Some thoughts…
The interview experience itself at Microsoft is something quite valuable valuable. At this point, I was happy I made it through the day, which meant to me that whether I would be hired or not, I was at least worth their time, and that gave me confidence, that I would not only be getting a job, but a good job, somewhere.
To future interviewees, I’d tell them to feel confident. The fact that Microsoft has invited you for an interview means that they saw something in you they liked.