Microsoft Internship Interview Experience | On-Campus 2021
Microsoft came to our college to select candidates for the roles of FTE as well as Summer Intern in July 2021. Out of the 230 candidates who applied for the position of an intern, only 18 students were selected finally. The entire process was virtual and was conducted in 2 rounds mainly.
CODING ROUND: The coding round was conducted on the Codility Platform and consisted of 2 questions to be solved in 90 minutes. The questions were quite easy but one couldn’t resubmit their answers after the first submission, so we had to check out all corner cases before submitting.
- 2 frogs can start on any index in the given input array. The function should return the maximum possible distance these frogs can create between them (difference between the index values of both) by having them jump farther away from each other. Frogs can only jump on higher-valued elements or some of the same height and they can not skip any elements. The full question in detail is given here.
- A string consisting of characters ‘a’ and ‘b’ can be broken down into blocks of similar consecutive letters. Determine the minimum number of characters to be added to make all blocks of equal length. (https://www.geeksforgeeks.org/generate-a-string-consisting-of-characters-a-and-b-that-satisfy-the-given-conditions/)
Only 44 students from here were shortlisted for the next rounds.
Round 1(Technical Interview): This round went about for nearly 45 minutes and it was quite smooth. The interviewer was quite friendly and asked me one coding question and told me to explain my approach. The question was Maximum Sum Paths and I explained a brute force solution first and we had a 30-minute discussion about other approaches. Finally, he gave me a hint and told me to code my approach.
Round 2(Technical Interview): The next round went on for about 1 hour and was again, mostly a coding round. The interviewer asked me 3 questions and I had to present my screen and run the programs for him.
- The first question was to remove every 5th element from a map. The program was simple but he checked for edge test cases and after a few modifications, it was running properly and he moved on to the net question.
- Detect loop in a Linked List. I told him about two approaches – using a set of Nodes and using Floyd’s Cycle Detection Algorithm but ended but coding only the former approach. ( Tip: Practice coding the entire program, not just the functions)
- The 3rd question was a variation of the classic pattern searching in a string. I told him the brute force solution and then the most optimized approach (i.e. using KMP Algorithm). However, since I wasn’t very familiar with the entire code for KMP, I conveyed the same to my interviewer. He said to go ahead and write how much ever I could. Finally, with some help from my interviewer, I completed the program mostly. Due to a shortage of time, I didn’t have to run the program, instead, the interviewer told me he’ll review the code afterward.
After this, he asked me if I had any questions for him and concluded the round.
Round 3(Technical + HR): The interviewer asked for a small introduction and then started with my resume and asked me how much I know about current trends in the technical market.
- Then he started asking system design questions and I was mostly clueless about those. Seeing my confusion he asked me if I had System Design in my syllabus and I replied in the negative.
- Then he moved to OOPs and asked me the difference between interface and abstract class and when we would use an interface.
- Lastly, he asked me a simple coding question – Given an array ‘Arr’, shift n elements from a starting index (say start) to another index (say destination), with no extra space.
- I wrote the entire code in a short time but he basically wanted to check my ability to find various edge test cases and cover all of them in my code. After we had checked and run all edge cases, he asked me if I had any questions for him and gave me feedback about my performance, and concluded the round.
The results were declared within a few hours and I was elated to find out I was one of the 18 students selected.
- My advice to all the candidates who are going to appear for an interview in the coming weeks or months is to stay calm and confident during the entire process.
- Never stop interacting with the interviewer even if they are not very interactive themselves.
- From my experience, the companies not only test you on your technical knowledge but also on, how you interact during the interview and handle a difficult situation. If you’re stuck on a problem, do not be shy to ask the interviewer’s help because that shows you can work well in a team.
- For the on-campus round, preparing topics like OOPs, DS/Algo will be enough but if you have time, also prepare System Design and remain updated with current technological trends.
Thank you for reading the post. Hope this will help you in your own interviews. Cheers!