Microsoft Interview Experience for SWE
Before we jump into interview exp, here’s my brief intro:
I am a Software Engineer, I graduated in covid year-2020 with a bachelor’s in Computer Science. Apart from the work I do, I love to curate, create & share ideas on Pinterest. So this was my second attempt at Microsoft. I had applied earlier for Software Engineer Intern in the 3rd year of BTech(rejected after tech interview II). I applied again for Software Engineer-I in Dec’21 and here it goes:
Round 1: HR SCREENING: I applied through LinkedIn & my profile got shortlisted by HR. We had the call, where he tried to understand my career trajectory & gave me insights into the SWE interview process.
TIPS: Keep your LinkedIn profile updated, make sure your resume includes work exp, projects, and internships. Add your leetcode/Github profile on LinkedIn featured section. Be clear about the notice period policy while discussing the same with HR. Don’t fake-out work exp.
NOTE: Each round from here was an elimination round.
Round 2: Online Assessment: This was scheduled after 15 days of HR Screening. OA had two questions of Easy-medium level. The first problem was based on Strings, where you have to eliminate three or greater than three same consecutive chars from the string and restructure it. The second problem was framed as a Stone-paper-scissor game, but you can relate it to the backtracking problem related to permutation. You will have to code the problem thinking of corner cases because you won’t be able to see if you passed edge cases apart from the base.
TIPS: Stay in touch with DSA while managing a full-time job. Don’t copy code/syntax from external resources, keep your basics clear.
Round 3: Tech Interview I: After a week, you will get the results of OA, you can also check with HR in the meantime. For tech Interview I, I got a week to prepare & I revisited graphs/heap/tree DS. I was asked to introduce myself, we discussed Drools Engine Development, SSO, and other work experience stuff. Next was two questions related to Belady’s Anomaly from OS & BCNF Normalisation. Now we headed toward coding problems.
- I was asked to code a problem based on the matrix ( compute before matrix given input as after matrix, where after matrix = function(before)). I came up with a brute force solution and upon checking various test cases with the interviewer, finally coded the space-optimized solution. Ques: https://stackoverflow.com/questions/65510354/matrix-summation-challenge
- Second Problem: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. The approach was the same, going from stack-based to storage-optimized solution. Ques: https://leetcode.com/problems/generate-parentheses/
Round 4: Tech Interview II: This round started with a discussion about Cloud services like Azure / AWS and integration for the same. It was scheduled on the same day as Tech Interview I. There was a couple of question-based on Singleton & Builder Design Pattern. Next, I was asked to code Employee Work Approval System. This was a scenario-based question, they expected the candidate to provide the correct data structure and give an algo for it. This problem was similar to the least common ancestral problem. https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/. Once I coded the problem, I made sure to follow the SOLID Design Principle. I opted for Java as an Object-Oriented Programming Language. The interviewer will keep on adding constraints as you proceed towards an optimal solution.
Round 5: Tech Interview III: It was another coding round. Apart from questions based on work exp/DBMS/Networking, I was given Josephus’s puzzle which had to be coded in O(1) time complexity. My brute force approach was to solve using a Circular linked list. Please find the O(1) solution here: https://medium.com/@shiwani2626/josephus-problem-in-o-1-time-b246f74775a2
Round 6: Techno Managerial Round: The last interview was scheduled with the Hiring Manager. This round started with the Word ladder problem, where I had to give the approach and explain why BFS was suitable for it. Problem link: https://leetcode.com/problems/word-ladder/
There were a series of managerial questions, and I will write about them separately. But FYI, I referred to this article a night ago: https://igotanoffer.com/blogs/tech/microsoft-engineering-manager-interview
After 3 days, I got a selection call from the recruiter and was more than happy 🙂