This will be the last part of my blog about microsoft interview.
The interviewer for my forth interview was the same guy as my first interview. Thus there was no introduction. This time he didn't ask me a technical question. He asked what would I do if I know that a product that will be release contain a bug. This bug would make the program crash, however, the bug rarely appeared. The condition for the bug to appear is very unusual. Thus the developer refused to fix the bug. In this case, what would I do? Then after we chat a bit about this question. He asked me second question. This time it was a puzzle. If there are 8 identical balls, one ball will be heavier than the rest. You have a balance. How many times do you need to use the balance to find the heavier ball. At first I answered 3 times using binary search. However, the interviewer told me that this can be done in two times. After thinking a bit I did it in two times. The answer was not hard. You can find a solution to this puzzle from any search engine.
Then he asked me one last question. If I have two weeks and the assignments given by the boss can't be done in two weeks, what would I do. There was NO WAY that the assignments can be finished in two weeks.
After the interview, I came back to the waiting area. I found out that there was one more guy who had the forth interview like me. We waited awhile. Then the recruiters came to us. One recruiter took the other guy away and the other recruiter sat with me. The recruiter said that "I don't have good news or bad news. You will have one more interview". She also said that we needed more information from you to see if we will have the right position for you or not and don't take this as a good sign or bad sign. At that time, I wasn't feeling anything. It's like every previous interviews drained the energy out of me.
Anyway, the fifth interview was my last interview. The interviewer was the same guy who came to my uni for my first round interview. He asked me that if there are cheeses in a maze. You know where every piece of cheese is located in the maze. There is a mouse. This mouse is randomly located in the maze. The mouse doesn't know where it is and it doesn't know where there cheese is. However, you know where the mouse is. How would you guide the mouse to the closest cheese. After he finished his question I was OMG. I know how to solve the problem, however, if he wanted me to write the code that would be a big problem for me. Luckily, he only wanted explanation and some psudocode.
Then the last question from him was if there was a file contained "name address salary". This file was very big, for example, the file would contained the name of every Chinese people. Define G as 10%richest/10%smallest. How do you find G. You don't have super computer. The program must be able to work on normal laptop/pc. Basically, how would you solve this problem without using massive amount of memory.
That's it! The end of my interview with microsoft. This was my first job interview. I wouldn't say it was an easy interview. At the end of the interview, I was feeling nothing at all. I didn't care about the result at the point. I felt that it was a really good chance and experience for me. To tell you the truth, I actually thought that the interview was more fun than I had imagined.
By the way, if anyone is curious, I got an offer from microsoft.
Nana's Random Mumble
Friday, February 4, 2011
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.
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.
Wednesday, January 19, 2011
Microsoft Interview Experience (part 1)
I just finished my 2nd round of interview with microsoft.
I began my journey with microsoft when I submitted my resume through microsoft career website during July (if I remembered correctly). Then randomly on September, after I forgot that I had sent resume to microsoft, I got an email invitation to interview. The interview would take place in my uni career center. There would be 2 interviews, each interview took about 30 mins.
On the interview day, the first person I interviewed with is HR person. She asked me about my project and some other typical questions that HR usually asked but more techie than behaviour. Like, she asked me how would I explain what internet is to my grandparents. I thought I did well in this interview.
The second interviewer is technical stuff only. After he introduced himself that he was in SQL team, we went straight to the question. The question is "Find the average of the numbers. You don't know how many numbers the user would input. Ignore all duplicate numbers"
The question wasn't that hard when I thought about it after the interview. But during that time, I was nervous and my brain was still not working properly. Anyway, I answered that I would use hash table to check for a duplicate. And he asked me to talk about time complexity of my program. At the end, he also asked are there any other way to solve this problem. I answered him I would use BST. Thinking back, I should have answered with BST instead of hash table, because I would need to reserved a lot of spaces for hash table and BST seems more appropriate in this question.
Anyway, I felt that I did horribly in technical interview. I did very little preparation the day before the interview and I didn't brush up my data structure and algorithm knowledge.
I wouldn't be surprise if I fail. To tell you the truth, I went to the interview with no expectation to myself. I just thought that it would be a good experience for me before I graduate and need to hunt for a job.
Anyway, after a week or so, I got email from recruiter that I will continue for the 2nd round of interview.
I began my journey with microsoft when I submitted my resume through microsoft career website during July (if I remembered correctly). Then randomly on September, after I forgot that I had sent resume to microsoft, I got an email invitation to interview. The interview would take place in my uni career center. There would be 2 interviews, each interview took about 30 mins.
On the interview day, the first person I interviewed with is HR person. She asked me about my project and some other typical questions that HR usually asked but more techie than behaviour. Like, she asked me how would I explain what internet is to my grandparents. I thought I did well in this interview.
The second interviewer is technical stuff only. After he introduced himself that he was in SQL team, we went straight to the question. The question is "Find the average of the numbers. You don't know how many numbers the user would input. Ignore all duplicate numbers"
The question wasn't that hard when I thought about it after the interview. But during that time, I was nervous and my brain was still not working properly. Anyway, I answered that I would use hash table to check for a duplicate. And he asked me to talk about time complexity of my program. At the end, he also asked are there any other way to solve this problem. I answered him I would use BST. Thinking back, I should have answered with BST instead of hash table, because I would need to reserved a lot of spaces for hash table and BST seems more appropriate in this question.
Anyway, I felt that I did horribly in technical interview. I did very little preparation the day before the interview and I didn't brush up my data structure and algorithm knowledge.
I wouldn't be surprise if I fail. To tell you the truth, I went to the interview with no expectation to myself. I just thought that it would be a good experience for me before I graduate and need to hunt for a job.
Anyway, after a week or so, I got email from recruiter that I will continue for the 2nd round of interview.
Tuesday, January 4, 2011
Viber is a very COOL application!!
I use viber, an iphone application. It's a free phone call application. Similar to skype, but viber requires no login. For skype, you can call your friend for free via skype if your friends use skype and are online at that time. And viber requires none of that.
Moreover, viber uses your phone contacts and check if any of your contacts are using viber. This means that if your contacts use viber, then you can call them for FREE!!!
If your contact is using viber, you will see "Viber" after the contact name. If not, you will see what type of phone number you specified when you added the contact. If you call the contacts that don't use viber, viber will just do a normal call using iphone's phone application and your sim call plan.
Using viber is similar to iPhone default phone application. Favorite, Recents, Contacts and Keypad are all the same as iphone's phone application. Actually, I use viber as my default phone application now.
When you use viber for the first time, you need to type in your phone number, and viber will sms an activation code to that number. This means that the number you enter could be in other phone. As long as you make sure that you got the code. Mine was actually in my older iphone3gs. (i'm using iphone4 now.)
The best thing in this very cool program is that it's FREE!!! You only need 3G or wifi. You don't need your sim in you phone at all. Now I can call my mom in Thailand from Australia for free anytime.
Moreover, viber uses your phone contacts and check if any of your contacts are using viber. This means that if your contacts use viber, then you can call them for FREE!!!
If your contact is using viber, you will see "Viber" after the contact name. If not, you will see what type of phone number you specified when you added the contact. If you call the contacts that don't use viber, viber will just do a normal call using iphone's phone application and your sim call plan.
Using viber is similar to iPhone default phone application. Favorite, Recents, Contacts and Keypad are all the same as iphone's phone application. Actually, I use viber as my default phone application now.
When you use viber for the first time, you need to type in your phone number, and viber will sms an activation code to that number. This means that the number you enter could be in other phone. As long as you make sure that you got the code. Mine was actually in my older iphone3gs. (i'm using iphone4 now.)
The best thing in this very cool program is that it's FREE!!! You only need 3G or wifi. You don't need your sim in you phone at all. Now I can call my mom in Thailand from Australia for free anytime.
Subscribe to:
Comments (Atom)