The memories are a little blurred, because my interview was more than an year ago. A lot of events have taken place since then. I am at the cusp of completion of my B.Tech degree, but since it was due for a very long period of time, I finally decided to write it down.
I clearly remember the time preceeding my interview. It was the start of the 3rd year, that's a time when you finally start realizing that there is more to life and college than just bakar, velliyapa and sleeping. You start thinking about what you want to do ahead in life, and take my word for it, It's damn confusing. My dilemma was whether to go for on campus internship or apply to universities abroad. Since we couldn't reject an on campus offer (I know it sucks!!), we had to opt from one of the two.
An on campus offer meant a gaurantee whereas as there are no assurances in apping. A hundred applications and you are still afraid of doing some stupid project back at college, and bang, just out of luck, the next application gets you an intern that the whole batch is jealous of you. Then there are other factors such as an intern converting to a PPO and benefits of a foreign intern if you plan to do MS later.
I hope you can understand that these can a tad too big decisions, when you have not really decided what to do with your life. So I pretty much did what most of us do, carry on with the flow of the things. Start applying abroad, whereas sit for on campus side by side. Grab the better deal you get first.
Microsoft was the first one to come to our campus for the interviews. It was the first time I was going to give any interview in my life and that too totally technical. Since I don't take part a lot in online coding competitions, my coding skills were not rajor sharp. Microsoft's interview processs is two step. In the first stage they conduct a written test for short listing. And in the second round there can be 2 to 4 rounds of interview. I think hardly any one had prepared for the written round, particularly me, so I faired badly. However I just managed to clear the cut off, I was probably the last one. The interviews were to be conducted in two groups, mine was the second. Thank the good lord, I got a whole night to prepare.
Having been shortlisted for the interviews, I decided to give my best shot. I literally crawled all the websites to get any and all types of Microsoft interview questions, revised my algorithm concepts and prepared myself as much as I could. Had a troubled sleep that night, but somehow I managed.
My first round was conducted in a group of 3, where we all were given an algorithmic problem and a testing problem. To my utter surprise, they had asked the same question which they had asked the previous year(how to find whether two linked lists intersect). I can't tell you the joy you experience, when you come across a question which you have already done. And the testing question need justa bit of imagination(you don't need to be a rocket scientest to think what all can go wrong with a coffee machine). My frist round being pretty, I was in high spirits for the next one.
My next interviewer was an interesting personality (heavy frame, small face, sparse shuffled hair and a permanent kiddish smile). His was the most interesting interview. It was mostly algorithmic array and linked list based round. Believe my more than doing all possible question, what you really need is a cool mind in the interview. Bouyed from a good first round, I was able to solve a question to which I had not found a solution just the previous night. Of course the interviewer gave me a few hints, but I largely did it on my own. The question was -- Given a list of numbers within a particular range, find those numbers which are being repeated. The problem is pretty simple, the only challenge is to do it in O(n) time, and with just two passes of the array without using extra space. He asked another question in the this round, but that was simpler.
Good, I was moving well along the interviews. My next round was a testing round, and the lady had some reputation around there. A lot of my peers were saying that her round was the bottleneck. Testing is a paradigm that we hardly come across in our course curriculum. We do a lot of coding, but testing is harldy (if ever) done. First she asked me some basic questions, whose test cases were pretty simple, such as an empty array, or numbers out of bound, or negative numbers or null values. These are still easier to get, because you think of the input values while you are coding. The hardest test cases to catch are those, which a developer does not think of at all while writing the code. I really hadn't realized that a simple question such as -- "How will you test a function that reverses a linked list" can be so intricate. I must have spent half my time on just that question, and the interviewer had to do a lot of work to get out the correct answer from me.
I was not that hopeful when I came out from this round, but it hadn't also gone that bad. But immediately after I was again called in for another round. This was my fourth, and I was pretty nervous because I was told that this round was with the big guy. Your selection result totally depended on this round, if he said NO, there were pretty slim chances that you were going to get a shot at another round.
At first the interviewer was very casual, and asked generic things, such how had my previous interviews been, what did I like about computer science and so on. Then he moved on to a design problem. I was asked to "design a data structure for contact book of a mobile phone" If you come to think of it, the data structure used in our phones is pretty complex. Nowadays the numbers are indexed on your first name, last name and the number itself. Moreover in a mobile keypad, four characters are mapped to the same digit. I had no experience at all of tackling a design question, and could not really give the exact answer. But I don't think, that they were expecting you to give the most optimized solution. More often they just want to know whether you can think up to that point. They don't mind giving hints, as long as you catch them and reach the point where they want you to be.
After I came out from this round, I was told that I won't be having any more rounds, and will be informed of the results later. Now I don't even remember exactly whether it was the same day or the next day the results were announced. But when I saw my name on the selected candidates, it was a good feeling to be fairing well in the first ever interview of my life.