Microsoft SDE Intern Interview Experience
Microsoft India Development Centre
Job Title: Software Engineering Intern
On-Campus Visit Microsoft, BIT Mesra 2019
Cut-off:
CGPA : 7.0
10th : 60 %
12th : 60 %
Rounds:
↓
Group Fly Round
↓
Technical Interview 1
↓
Technical Interview 2
↓
Technical Interview 3
Online Coding Round
135 candidates appeared for this round. We were given 3 questions to solve within 1.5 hrs. The round took place on Mettle. Questions were pretty easy and everyone faced different problem sets. We only needed to implement the relevant methods.
Q1. Pikachu goes for a battle. He has ‘n’ number of attack. If Pikachu uses these ‘n’ attacks sequentially (not necessarily in order), he wins the match. So given the ‘n’ attacks and a sequence of actual moves made by Pikachu, determine if he wins or loses.
Testcase:
-
n = 3. {bite, kick, jump}
Actual moves: “fightplaykickjumpirontrekbite”
Output:False -
n = 4. {bite, kick, jump, kamehameha}
Actual moves: “fightplaykickjumpirontrekbitepunchkamehamehajumpkickbitespiritbomb”
Output:True
Q2. Given a ‘prefix string’ and a ‘sentence’. Print all words in the ‘sentence’ starting with the given ‘prefix’.
Testcase:
Prefix String: ‘con’
Sentence: ‘continuous constraints cause fatigue’
Output: {continuous, constraints}
Q3. It was a really complicated structured question, so I am not able to recall it. Me and some of my friends who faced this Q had the same opinion.
I solved (2/3) Questions of these round.
Group Fly Round
53 students qualified the Online Coding Round and were invited for the Group Fly Round the next day. We were asked to “come well-groomed and in formal dress”. It was a 30 minute pen and paper round.
Q
Given an unsorted array, print all the longest sequence of consecutive integers that are present in the array. You can pick the numbers in any order. The array could have both positive and negative numbers. Also, we were asked to avoid using library functions.
Even though the problem seemed easy, candidates did make mistakes under pressure and time-constraint.
After a short break and company presentation, the results for the Group Fly rounds were announced.
Face to Face Interviews
In each of the interviews, the first question is to introduce yourself. My answer started from what I’m currently pursuing and where I hail from. Then I talked about my school life and how I developed my passion for Technology. I cleverly slipped a few of my major achievements while narrating :p
We were required to write the code snippets for each coding question. Be smart while making your Resume. Do not mention something if you have only a surface level knowledge about it.
It is true that luck is a factor, but your Resume and your conversation may turn the tides in your favour. Be honest to the interviewer. Admit it and ask for help if you don’t know or if you already know something. They are mostly friendly and helpful. Be confident and humble at the same time. An interviewer may ask the same questions to different candidates ;-)
Technical Interview 1
Around 25-30 students made it to this round. I don’t have a count for the subsequent rounds. I was the first to be called. I was quite nervous in the beginning. After the small introduction, I was asked about my approach in the group fly round problem after which I was given a problem.
Q
Given two unsorted arrays of different length. Find the median of the two arrays.
–> First I proposed a brute force approach and then a more optimised one, using two-pointers (something similar to MergeSort)
After this I was asked another question.
Q
I was asked to design a ATM. At all points of the interview, I was constantly communicating my thought-process with the interviewer. If you have any reasonable question, ask the interviewer. It clarifies your doubts and also shows that you have an eye for detail. I was able to draw a flow-chart (somewhat similar to a use-case diagram). I was also asked to think about circumstances and to deal with it. For eg. Server Failure or a Power Failure.
(A friend of mine was asked to design a Cab booking app)
Surprisingly, this interviewer did not even touch my resume. After this, I was asked to wait for the results.
Technical Interview 2
After an hour or so, I was called for this round of interview. Some candidates were rejected :-(
The second round was completely different from the first. The first thing he did was to have a good look at my resume. He saw JAVA mentioned on my resume and went on to ask why I use JAVA and some more Oral-Questions related to Object Oriented Programming. After which he asked me to write code for some questions. This guy asked to directly write the code on the sheet and asked not to explain.
Q Given two unsorted Linked Lists, merge them such that no duplicates remain in the sorted LinkedList. –> I was able to solve this in O(N) Time and Space Complexity
Q Generate a random number from (1, 20) without using libraries.
–> I gave it a thought for a minute or two and realised I can’t do it. I asked for help. So he gave me another mathematical puzzle.
Q I was asked to return maximum of three numbers using only ‘-‘ sign and using minimum conditions.
–> I was able to solve this after pondering a bit
After which I was allowed to go.
Qs to other students:
- Shortest Path in Directed Acyclic Graph
- A variation of the N-Queens problem
Technical Interview 3
After waiting for another hour. Finally :D, I was called for the next round. This interviewer was the most friendly. He greeted me and asked me to relax as he was not going to ask any technical questions. That was a sigh of relief. He was a very observant person. He looked at the projects I’ve worked on. He asked Qs related to how am I as a person to how was Sentiment Analysis done on the tweet. It was a cool experience with all the interviewers, but interacting with this person was much more fun. We had some witty conversation too.
What I collect is that you need to be good not just technically but also in expressing yourself. I’m glad that I was able to improve this skill lately.
Even though I knew the interview went well, I was quite scared for the final results. After a while a few T&P members came and greeted me, “Congratulations, Adnan you are hired!” and I can’t express the mix of emotions inside me. Huge shout out to the T&P people.
Vote of Thanks
A huge credit goes to my friends, especially The Loco BB IT group and Apna Party Aaega group :p
Also to my seniors who helped me and clarified my doubts
Lastly nothing would have been possible without my parents and my brother. My brother has been the evergreen source of inspiration and no words can express how grateful I am for my parents.
Eight of us finally made it through. We will be given an opportunity to intern at Microsoft Development Center next Summers and maybe more :D
This is my first blog entry :D
More Queries? Feel free to contact