Microsoft IDC FTE Interview Experience
The entire process consisted of a total of 5 rounds (including online coding and group-fly round) all of which have been described below.
Round1: Online Coding Test
There were 2 sets of questions. 60 students appeared for this round. The three questions I got were:
1. The first question was very simple. Something like comparing the characters in two strings. I would just like to point out that the co cubes platform is not very user friendly and its better you know how to deal with character arrays, pointers, etc. ( Most people code in c++ and are habituated to using strings. So just brush up your c concepts a day before the test and you should be good to go. ) (2 marks)
2. https://www.geeksforgeeks.org/minimum-number-appends-needed-make-string-palindrome/ ( 3 marks )
3. Separate the vowels and consonants in a linked list, putting all the vowels first followed by the consonants. Something similar to https://www.geeksforgeeks.org/arrange-consonants-vowels-nodes-linked-list/ ( 5 marks )
Stay calm during the round and check your codes even after the sample test pass (they are very weak). Also, I would like to point out that there were memory constraints in some of the questions but a couple of students who had used extra memory were also selected. So in case you are not able to write a code without memory use it rather than leaving the question.
Round 2: Group-Fly
26 students were shortlisted for this round.
There were two questions given in this round. The code was to be written on paper in 45 mins.
1. Check if string 1 is a rotated version of string 2,
2. A variation of the word break problem. Given a dictionary of words we had to find out the longest word in the dictionary that could be formed from the rest of the words.
Note that you have only 45 mins. They expect you to write the code for both the problems. I had written a dynamic programming solution for the second question but wrote a brute force for the first (O(n^2)). Note that the first question could also be solved in O( n ) using kmp but I would not have had the time to complete both questions if I tried the kmp approach. A fellow student who tried the kmp could not write complete code and was not shortlisted for further rounds.
A very important point in the group fly is to interact with the interviewers. They are very nice and helpful. Explaining your solution makes it easier for them to evaluate your solution later.
About 10 students were shortlisted for further rounds.
Round 3 (Technical round 1) :
The interviewer was very friendly. First I was asked to introduce myself. I was then asked to design a recommendation system for Amazon. Here we discussed about data privacy issues. The next design problem was to design a tiny URL. I used the analogy that the decimal numbers are smaller than the corresponding binary numbers. Hence the URL could be made shorter by using a larger number of characters to represent the URL.
I was then asked about my interests, which I mentioned were software development, ml, deep learning, etc. I was then asked to apply deep learning to contribute to the growth and progress of India. I applied deep learning to predict and analyze the increasing pollution in rivers in India.
I was then given 2 simple problems. One was on graphs and the other was to find the number of ways from the top right corner to the bottom right corner in a grid ( permutations and combinations ).
Some behavioral questions followed:
1. Tell one weakness of yours.
2. Tell me two of your strengths
I was then asked if I had any questions for the interviewer. I knew a lot about the interesting things that Microsoft worked at but I asked him what he thought about the company and if he could share some of his projects.
The interviewer as I mentioned was really friendly. It’s important to make sure you are clear about the problem before you start solving it. Asks questions to the interviewers who will be more than happy to answer your queries.
Round 4 (Technical round 2):
The round 3 was about 1.5 hours long for me. However, this round was about 45 mins.
I was first asked about my projects during my internship.
The questions asked were based on row major and column major ordering ( how is the cache affected ). What is a cache?
What is polymorphism and what are the two types of polymorphisms and explain them?
There was a question of converting a doubly linked list to a singly linked list. We were allowed to modify the data in the nodes (use xor of addresses).
The next question was regarding databases in which we discussed triggers, indexing, hashing, etc.
I was then finally asked if I had any questions for the interviewer.
Round 5 ( HR ):
This round was a telephonic interview with a senior technical individual at Microsoft. He too was very friendly and first asked me to introduce myself. He was impressed by the projects and internships that I had done. We had a discussion on the work I did there and the technologies that I used. He then asked me about my interests and the difference between AI and machine learning. He told me a lot about the work at Microsoft which all sounded very interesting.
4 students were finally selected for full-time employment at Microsoft.
What’s important to realize for you guys is that working hard is in your hands. So do that and forget about the result. What you learn will never go in vain. All the best!
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon. Google , E-Litmus and Microsoft Test Serieses.