Rachit Kumar Tewari
Currently studying at NIT Manipur
Upcoming SDE at Microsoft
Some people think that if they are new to programming when they join their college, they can’t do much in their upcoming years, let me tell you one thing, I had no previous programming experience before joining my college ( not even HTML ). By this date, I am in my sixth semester and I got an internship at Microsoft, this should be sufficient to motivate you :).
I would like to share my interview experience with Microsoft for the ‘Software Development Intern’ role, obviously, it’s a dream internship for many of us, right! I will try to share my experience in as much detail as possible, so if it gets a bit verbose, don’t skip it as it’s worth reading :).
I applied for the internship role off-campus through ‘Microsoft Careers’ website. It’s good if you can get a referral from a Microsoft employee or you would need a decent resume to fight for you! If your resume gets shortlisted, welcome to the next rounds :).
There were a total of five rounds :
1) Online coding round on Mettl.com
2) Online technical interview round through the ‘Microsoft Teams’ app.
3) Three on-site technical interview rounds at Bengaluru.
Online coding round
It was on Mercer Mettl | Best Online Assessments Software for Better Talent Measurement, Examinations, Certifications, Recruitment & Training.
I got email about 10 days prior to the date of this round. This round involved solving 3 coding questions. None of those questions were above medium difficulty level. If you solve questions on gfg or codechef or somewhere else then you will be able to clear this round easily. There were different sets of questions, with 3 questions in each set, I would like to mention a few questions-
- Find k’th character of decrypted string
- Amazon Interview Question for SDE1s
- Construct a Binary Tree from Postorder and Inorder – GeeksforGeeks
Some questions just involved implementation of right mathematical approach like for prime numbers, gcd of two numbers, etc.
As you will go through these questions, you will find they aren’t too difficult to solve. Clear understanding of questions, presence of mind and practice is key to these questions. I solved all the three questions of my set and was selected for the next round. A few students who even solved all three weren’t selected for next round, I think if you aren’t lucky enough, your resume needs to fight here too.
For this round also I was informed approximately 10 days prior to the date of interview.This round was of around 45 mins. I would like to share a few questions which I remember –
- Which is your favourite datastructure?
- Why is it favourite?
- Give some merits and demerits of that datastructure.
- Give real life situations where you can use it and where you can’t use it.
- Complexity of insertion and deletion in that datastructure.
- Difference between stack and queue.
- How will you implement a stack with an array?
- How will you implement two fixed sized stacks with a single array?
- How will you implement two variable sized stacks with a single array?
- How will you implement n fixed sized stacks with a single array?
- How will you implement n variable sized stacks with a single array?
- You are given an array of names, say arr, you need to implement a class where you will have to store these names, you need to create a method in that class itself which will take a string as an argument and will return an array of all names starting with that string ( I was asked to code my approach by considering arr to be sorted first and then unsorted ).
- Complexity of codes that I wrote for given problem.
- Best complexity possible for the given problem.
A few more questions were asked, but mostly all were related to datastructures and algorithms. In my opinion, this round was mostly concerned with theoritical understanding of data structures, algorithms and how you approach a given coding challenge.
3) Three on-site technical interview rounds at Bengaluru. For this round also, I was informed 7-8 days prior to the date of interview. I was interviewed at Bengaluru. Firstly they gave introduction about Microsoft, its goals and all, work culture over there, after that they asked us to have breakfast. During the breakfast itself, we ( the candidates ) talked to eachother and became quite familiar with eachother because it’s not just about cracking the interview, you learn alot from people you meet, some of us even made a whatsapp group after coming back from Bengaluru. Now coming to the rounds –
Onsite Round – 1
- Interviewer asked me to explain one of my projects that I mentioned in the resume. He asked me to explain how the coding part works with an example and asked to write a small part of the code section.
- Code – A program to check if a binary tree is BST or not – GeeksforGeeks
- Code – Write a function to get the intersection point of two Linked Lists – GeeksforGeeks
In my opinion this was an easy round, interviewer also asked complexities of my solutions. I was able to answer all the questions of this round.
Onsite Round – 2
- Code – Search an element in a sorted and rotated array – GeeksforGeeks
- Code – Level order traversal in spiral form – GeeksforGeeks( Give two approaches to solve the question )
- How server – client system works?
- Basics of DBMS and networking.
- How data is stored in servers, which datastructure will you use to store data?
- Give some ideas to optimize storage at server.
- Primary key and foreign key.
In my opinion second coding question was a bit tricky, rest all was not much tricky, just proper understanding of basics of networking and DBMS was required. I answered all the questions in this round as well.
Onsite Round – 3
- What is your dream project on which you wanna work upon ?
- Code – Find whether a given binary tree is balanced or not ( definition for balancing was a bit changed, a tree is balanced if the difference between the depth of any two leaf nodes of the tree is not more than one ).
- What is deadlock, how to prevent it?
- Pseudo code to prevent deadlock.
- What is the biggest trouble you faced while doing the projects mentioned in the resume?
In my opinion, this was also not a difficult round, just a clear understanding of O.S. and presence of mind was required. I answered all the questions of this round as well.
That’s all, the whole interview process was amazing and the interviewers were amazing too. 4 days past the interview date, I received a mail from Microsoft that I have been selected for the internship, it felt really awesome. I hope this post will guide you and please remember, its not just about cracking the interview, it’s more about learning how to learn.