Status: 1.6 YOE, Tier-3 College CS Position: SDE 2 at a Mid Tier PBC Location: Bangalore Date: November
Applied via Referral by a Microsoft employee who was my senior in college.
Got a call from Recruiter after a week of application that profile is shortlisted and shared an OA link on Codility.
1st Round (OA - Codility - 110 min) Problem 1: Array based question where greedy approach was required. Problem 2: Problem was given in the form of a story, took some time to understand it, applied sliding window protocol to solve it. Note: In Codility your code is not run on all the test cases during the 110 mins but only on very few small ones, so you are not sure whether your solution is efficient enough. Once the time is over all the test cases are run and then the score is generated. I scored 90% where cut off was 70%.
Recruiter reached out to me that I have cleared the OA and scheduled on-site interviews on the upcoming Friday (The entire duration from getting call from recruiter to completion of interviews is less than a week). It was on MS Teams. All rounds were conducted on the same day.
Round 2 (DSA - 1 hr) The interview started with self introduction followed by work and project which I'm doing in current company. Tech stack which I use in current project has been asked. Two Coding questions, we have to write a production ready code which cover all the edge cases. This was also conducted on Codility. First - Array based question which I solved it using binary search. Solved the question using various approaches in the decreasing order of time complexities and finally coded the optimized version using binary search. (Easy-Medium) Second - Again a story based question which was asked in terms of threads and tasks. Never solved this type of question earlier hence took some time to analyze and come up with a solution. Interviewer was helpful, answered all of my doubts. Finally solved the question using BFS + degrees concept. Interviewer asked me to think about edge cases. Missed one of the edge cases, got to know regarding it from the Interviewer, made code modifications to handle it. (Med-Hard)
Round 3 (DSA - 1 hr 20 min) Similar to previous round, this round also started off with introduction followed by prior experience, Usually every round consists of two programming questions but for me only one question was asked may be because of its difficulty level. Program: String based question related to Microsoft Excel functionalities. Needed to share the screen, write code on online compiler and run it agaisnt various set of inputs. Initially tried solving it using recursion, discussed the approach with Interviewer. Had a good discussion regarding edge cases. Wrote the production ready code and ran it, code was giving slightly different answers when compared to expected answers. Interviewer gave hints through which I was able to correct my code. The time complexity was exponential. Thus improvised the solution using DP. Had a mixed feeling after this round since I took some hints from interviewer. (Hard)
Round 4(DSA + Low Level Design - 1 hour 15 min) This round also started off with introduction followed by prior experience. Then Interviewer asked me an LLD question where I needed to design and code one of the Microsoft Product's features. Used SOLID principles and factory pattern in designing which impressed the interviewer. (Thanks to my current company's project where I learnt and used SOLID principles + various design patterns in production). Then I wrote code for my design. Interviewer told me that it is correct solution but can still be improvised with additional design patterns. Then I was asked two programming questions. Program 1: Math based question for which I gave various approaches, finally used divide and conquer to solve it in logn time. (Easy-Med) Program 2: Matrix related question which I solved using DFS. Was asked to handle all the edge cases, overflows. Wrote production ready code handling all the edge cases. (Med)
Round 5 (AA round) 45min - 1 hr This was the last round. Interviewer was one of the senior most persons with 15+ years of experience in Microsoft. Again I gave my intro, clearly explained the work which I currenlty do with architecture diagrams. The result of previous round was very good, hence didn't get any technical questions further. Was aksed generic questions like reason to join Microsoft, how my life went till now etc. At the end, Interviewer told me that I'm selected!! I was soo happy on hearing the result since it was my dream coming true moment.
Note: There was very less time gap between interview call and interviews. I was preparing for the interviews for about 2-3 months but was not so consistent. Hence needed to do all the hardwork in this one week time where I slept for few hours in the entire week. Revised all the CS fundamentals, brushed up with DSA which I did during grauation (Mostly using GFG). My suggestion is to be consistent, prepare well for about 3-4 months so that you will be interview ready. Try to solve problems without applying topic tags, this will help us to solve new problems. Try developing projects using various design patterns and SOLID principles.