My Interview with Microsoft



This post is for those who want to apply or have already applied (but not finished the interview) for a Microsoft Job. The recruitment process is quite similar for everyone and consists of a few steps.

I will tell you my story and how I went through the four phases.

1. Application

My blog’s title (Ex Nihilo Nihil Fit) means “Nothing Comes Out of Nothing”. You can’t get a job at Microsoft by not doing anything - this is true for anything else. The first step you need to complete is the application process.

For this, many options are available. You can…

On MS Careers you just have to post your CV and choose the job you want. That’s all! No recommendation letter, no cover letter, no nothing. Of course, not every CV passes the selection process. Here are some tips for improving your resume (worked for me):

Once you completed your CV, choose the job that suits best your needs, apply and wait… The waiting is a problem because all these big companies like Microsoft, Google, Mozilla, Apple, etc. will contact you only if they find something interesting in your application. If you’re not suitable, then no rejection is sent. I applied for an Intern Software Development Engineer position at Microsoft Redmond. I cannot apply for a full time position because I want to finish the master program on time, in the next summer - an internship is just what I need.

2. E-Mail Interview

January 20, 2010. Two months since I submitted the CV. I wasn’t hoping anymore that MS will contact me, when I got an e-mail titled: “Victor Hurdugaci ES DK” from Holly Peterson saying:

Hi there, My name is Holly and I work with the Microsoft International Internship recruitment program. We recently received your CV and would like to consider you for one of our technical internship positions in Denmark in 2010. […] Please respond by the end of the day if possible

Wow! Now this was a good news. The possible bad side was that the internship was going to take 12 months. This might be a problem. However, it solved really well after talking to my professors. They understood the value of this internship and considered that will be possible to go for 12 months in Denmark and do my thesis there.

The e-mail also contained a set of 15 questions that I was supposed to answer when sending the response. The topic of the questions was not the same. Some asked HR questions like:

Others were a little tricky and technical:

I tried to be as specific as possible, but still give exhaustive answers, trying to cover all possible uncertainties present in the question’s text. By the way, you can’t send an e-mail back to ask for more details or clarifications. I don’t think I am allowed to post my answers to questions. I will just leave them as homework for you.

Replied the same day (actually the next day at 00:20 in the morning) and I waited again. Now was better because they are going inform me about the decision, no matter if is positive or negative. It was just a matter of time.

You might have more than one e-mail interview. I met someone who had two with less questions.

Few days later, another e-mail arrived. They continue to consider me as a candidate. Someone from Microsoft Development Center Copenhagen (MDCC) will contact me to schedule a phone interview.

3. Phone Interview

This is where it gets interesting. Until now everything was asynchronous and for all questions I had time to think. During a phone interview you have to come up with (almost) instant solutions.

I was contacted by Mario Lucich who proposed an interview on March 5th at 10:00. That time was not convenient for me and I asked to postpone the call. The new time, 13:00, was good. If you get to the phone interview and the proposed time-slot is not good for you, don’t be afraid to ask for changes.

March 5th, around: 12:30. I was preparing for the interview: a piece of paper, a pencil, a glass of water and I was really cool with this.

March 5th, around 12:50. I was nervous, I felt like I wasn’t ready for this and I was expecting for a bad interview.

March 5th, around 13:00. Mario calls on Live Meeting (we decided to use this application instead of phone - is more convenient).

The start of the interview was a relief because we both had problems with the headset and there was a period with “Can you hear me? No? Click-click. How about now? No? Click click … “. This showed that the interview was not going to be formal. Good!

After we solved the headset problems and went through the usual “Hello. How are you? Fine. How about you?”, we got straight into questions.

From what I read on the Internet, each phone interview is different. Each individual got a different set of questions. Again, no answers will be provided. I was asked:

An interview, usually, lasts for 30-45 minutes. After 10 minutes, the interviewer, dropped a bomb: “Victor, I’ll say this directly. I don’t think we should go any further with this interview”. Ups… I got upset and I said to myself: “Victor, you are so stupid. You provided the worst answers possible and now you missed your change”. And then he said: “… because you convinced me and you will be invited for another interview at MDCC”. I was completely amazed! After just 10-15 minutes the interview was over and it was a success.

I was expecting to technical questions. Other had quite a lot of them, but I got no technical question. The only technical part was when I talked about expert systems - my Bachelor thesis.

Again “someone will contact you in order to schedule the interview and all the details”.

Tips for interview:

4. On Site Interview

As agreed, I was contacted by someone to schedule the date of the on site interview. I was supposed to fly on March 4th to Copenhagen, sleep that night at Raddison Blu Scandinavia hotel and have the interview in the next morning. This is how it happened.

The flight with KLM was really nice! I am quite afraid of flight, but I enjoyed this one. The plane was not full so I had 3 seats to seat on :) The same thing happened when I was returning to Holland (with a minor difference. More on this below).

The plane ticket was prepaid by Microsoft. The same thing didn’t happen with the hotel room. I had to pay it and money will be reimbursed. Be careful that Raddison Blu Scandinavia is not accepting Maestro cards! I was really lucky to have a VISA card with me.

So, after a good sleep and a delicious breakfast I took the taxi to MDCC. The taxi driver said he knows where are we going and after a few minutes started to look on the map for the location. He didn’t know where we were supposed to go. I used my phone to find the location and I think he made a huge detour because I had to pay twice as much as others. The good side is that this expense will be reimbursed.

I arrived at MDCC 1 hour before the schedule. The interview was scheduled at 10:30 and I arrived at 9:30. I was hoping to take a walk through the campus, but it was too cold to stay outside. The lady at the front desk invited me to wait there, on a couch. I read some brochures and had some water.

At 10:30 I met Scott Simmons, the person who was going to be my guide in that day. He took me to another room with other interviewees (~10 . They were coming from Romania, Austria, Germany, Russia, Moldavia and Finland) and a table full of snacks and drinks. Whooo party! In that room was also a Microsoft Surface with which we played during the day - unfortunately is not as impressive as in commercials.

Near our room, was another full of interviewers. They were coming out when someone was supposed to be interviewed and they were going back in when the interview finished. After 10 minutes, one interviewer asked for me. We went to another room, in another building and the interview day started.

The first interview was really direct. I was expecting an introduction or something, but went straight to the blackboard and said: “You are given two arrays: before: {3, 3, 5, 8, 1} and after: {5, 3, 2, 4}. Determine what numbers were removed/added from/to the ‘before’ array in order to obtain ‘after’.” I had to write code on blackboard. I choose to write C# code and I implemented the solution using a dictionary. After this, I was asked about the complexity of the algorithm and the discussion went really deep in the implementation and complexity of dictionary (hash table) - “What elements to you add to a dictionary in order to make the Contains method run, always, in O(n), where n is the number of KeyValuePairs in dictionary?”. After a few hints, I was able to come up with the solution, which is not really simple even after knowing it. Can you figure it out?

After that he explained me what is his role at Microsoft and how the development process works - he was a developer team lead. We had a chat on our way the waiting room, in the other building. Drinks, Surface, chat with the other for another few minutes.

My second interviewer comes out from ‘The Room’ and we are going to a room in the same building. This was great because outside was really, really cold. It was the interview I enjoyed the most. After each of us telling his story - he told me about his life at Microsoft, I told him how I got to Netherlands and what I like to do - he told me to design a Tetris game, on blackboard. This wasn’t hard - I did some UML diagrams, explained each design decision and in the end had to write some code that will show a design pattern which can be applied to that design. I implemented a pseudo observer pattern and quite messed it up, but seems it wasn’t so bad after all. The interview ended with me asking for feedback about my design.

The third interview, thinking back now, was supposed to be the easiest. I had to design a function that takes a string as argument and reverses the order of the words, preserving spaces. Imagine that I spent 1 hour and I managed to come with a crappy implementation. First I tried something with regular expressions which didn’t worked eventually ending up by manually splitting the phrase in words and groups of spaces. What disoriented me was, that between words, you can have multiple spaces or tabs. After arriving home I found the solution in 1-2 minutes. I really performed bad in that interview and I don’t think the interviewer was impressed at all.

The last interview session was not really technical. I talked with one product manager who wanted to know what I want to do there and I think he was trying to understand on which position - tester or developer - I fit better. The discussion was awesome because I found some more information about the development and shipping process of Microsoft products.

I was getting tired, nervous and anxious after the four interviews. In the waiting room there was just me and a guy from Austria. The person responsible for me comes out of the room and asks me if I am someone else. He apologies and after a few minutes comes back again. We were still waiting. We gather around a table and he tells us that we both are going to get a job at Microsoft! None of us knew how to react. Then, he gave us some more details about the internship program and how are we going to proceed further.

After four hours of interviews, everything ended up with success. Me and the Austrian went to the train station, waited for a train which was more that one hour behind the schedule and finally arrived to the airport. We had dinner and a beer (duh!!) and each of us went to his plane - we’ll meet again in summer. There is an cool commercial in Kastrup Airport (after you pass the security check) - see the picture on right. The flight back to Netherlands was quite good. We had some turbulence before landing, but otherwise it was OK. There were some lousy guys in the plane which amused me.

My tips for the on-site interview (you can find many others on Internet):

Yesterday, March 12th, I received my employment contract which will start in summer and will last 12 months. Finally, I’ll go where I always dreamed.

Resources

When you are preparing for the interview you are searching for as many information as possible. I will make your job a little easier and share the best resources I used (in random order):