MakeMyTrip | SDE1 | India | May 2022 [Reject] | Bad Luck
Summary
I interviewed for an SDE1 position at MakeMyTrip in May 2022. Although I successfully navigated the online assessment and the first DSA round, I faced a rejection in the System Design round due to my lack of preparation for such problems as a fresh graduate.
Full Experience
My journey began with an online assessment on April 24th, 2022, which lasted 1 hour and 30 minutes. The assessment included two coding challenges: the 'Longest Ideal Subsequence' problem from LeetCode, and another problem identified as 'Safe Paths' from a MakeMyTrip OA discussion. I successfully completed this round.
The first technical round, focused on Problem Solving and Data Structures & Algorithms, took place on May 16th, 2022. My interviewer was an SDE-2 with over 5 years of experience. I was given two questions. The first was a variation of the 'Combination Sum' problem, where each element could be used only once. For an input like Target = 7, nums = [1,1,2,2,3,4], I needed to find combinations such as [3,4], [2,2,3], [1,1,2,3], and [1,2,4]. I solved this using a backtracking approach, similar to the original Combination Sum problem. The second question asked me to sort an array using only recursion. I implemented a recursive Bubble Sort algorithm, which had an O(n^2) time complexity. The interviewer seemed satisfied with my solutions for both problems, and I passed this round.
The final round, a Design/OOSD round, occurred on May 24th, 2022. This round was led by a senior engineer with 10-11 years of experience, who clearly had a strong grasp of Software Architecture and Design. He started by discussing my resume and past internship experiences. Following this, he presented a design problem: 'Design and write an OOP based code with an ER diagram for an elevator management system.' Unfortunately, I had no idea how to approach this problem and openly admitted my lack of knowledge. After only about 15 minutes, he informed me that I should have another discussion with him after 6 months, which was essentially an on-the-spot rejection. He also asked some in-depth OOPS questions, specifically requesting an explanation of runtime polymorphism and why an abstract class cannot be instantiated. The interview concluded in less than 45 minutes, leading to my rejection. I believe my failure in this round was due to not anticipating a System Design question for a fresh graduate role. I had focused on DSA, assuming it would be another DSA round based on previous experiences shared by fresh graduates. The interviewer's condescending demeanor from the start might also have affected my performance.
Interview Questions (5)
Given a collection of candidate numbers (nums) and a target number (target), find all unique combinations in nums where the candidate numbers sum to target. Each number in nums may only be used once in the combination. Note that the solution set must not contain duplicate combinations. Example: Input: Target = 7, nums = [1,1,2,2,3,4]. Output: [3,4], [2,2,3], [1,1,2,3], [1,2,4].
Sort a given array of integers using only recursive functions. For instance, implement a recursive version of Bubble Sort.
Design an Object-Oriented Programming (OOP) based code for an elevator management system. This should include an Entity-Relationship (ER) diagram.
Provide an in-depth explanation of runtime polymorphism. Discuss why an abstract class cannot be instantiated (cannot have an object).
Preparation Tips
I prepared extensively for this interview, focusing on Sean Prasad's list, Neetcode 150, and Grind 75. However, I didn't anticipate being asked System Design questions as a fresh graduate, which ultimately cost me the offer.