Pages

Sunday, January 23, 2011

Microsoft Interview Experience (part 2)

After a week, I got email from microsoft recruiter saying that I can continue on to the second round of interview. The interview would be around March 2011.

However, 2 weeks before New Year, I got email from microsoft again. This time, the interview scheduler said that I would be interview for full time SDET and the interview would be held on 3rd week of January in Singapore. I can also choose whether I want microsoft to arrange my travel and accommodation or I would arrange one myself and reimburse from microsoft later. Anyway, I chose my interview time slot and let microsoft arrange my travel and accommodation.

Fast forward to the week before the interview. I received an email from the recruiter saying that she would held a live meeting. During the meeting, the recruiter explained about the interview, the offer and what would happen if you got the offer.

Fast forward again to the inteview day. I arrived very early, like 30 mins before the interview time. My interview time is 8.30am. At 8.30am, the recruiter took me and 4 other people to a waiting room. She explained that there would be at least 3 interviews and possible 4 interviews if we, a.k.a microsoft, wanted more information from you. Each interview took about 45 mins. After each interview you would be in this room waiting about 15 mins for the next interview.

My first interviewer worked with microsoft for 15 years. He asked me reverse words in a sentence. For example, "this is a cat" would result in "cat a is this". I thought that I aced this question.

After the interview, the interviewer took me to the waiting room. The recruiter waited until everyone was in the waiting room. She talked about the offer and what microsoft would give you, if you got the offer.

For the second interview, the interview asked me to write a very easy piece of code and then he asked me to test that code.
The second question he asked was to find a missing number. Say you have an array[99] and the number inside the array is 0-99. There will be one number missing. There was no duplicate. Explain how you would find missing number.

During the break, the recruiter talked about life in microsoft. She showed some pictures of microsoft campus. I actually felt good because I thought the next interview would be the last interview.

Then came the third interview. This time the interviewer had worked with microsoft for 16 years. First, he asked me to talk about the project that I worked on. After that he asked programming question. His question is if there is only "int toupper(int c)" function. This function will return the upper case of a character. If the character has no upper case, then the function would return the same character.
'a' -> 'A'
'A' -> 'A'
'*' -> '*'
Write "tolower" function. The function should work with any type of character. You can't assume that the character will be ASCII. If someone were to create a new set of character, the function should work too. The character would have value between 0-255. You knew that "toupper" function worked perfectly with any set of character.

I thought this question was the hardest of all the questions the interviewers had asked so far. I also felt that my head is very blank due to those previous interviews. I would say that I struggle with this question the most.

After the interview, I came back to the waiting area. Everyone was anxiously waiting for the result. I thought that everything was over. However, one of the interviewer was to us and said that there would be one more interview for me.

Edit: forgot one more question from the third interview. The question was "test a function writefile(void* p, int byte, FILE *f)" I tested the correctness of the function. The interviewer also asked me to test the performance of the function also. How fast is the function? How do you make sure that the function wrote the data with the fastest write speed.

No comments: