MakeMyTrip | Senior Software Engineer I | Bengaluru | Mar 2021 [Offer]
Summary
I interviewed for a Senior Software Engineer I role at MakeMyTrip in March 2021 and successfully received an offer. The interview process spanned four rounds, covering technical problem-solving, system design, and HR discussions.
Full Experience
My interview journey for the Senior Software Engineer I position at MakeMyTrip in March 2021 was divided into four primary rounds.
Technical Round I (Virtual teams call): This was primarily a Problem Solving/Data Structures & Algorithms round where I faced two challenges. The first problem was based on Dynamic Programming with BFS, similar to Jump Game III. The second involved a matrix 90-degree clockwise rotation, akin to Rotate Image. I managed to explain efficient logic and then implement code for both problems. Following this, there were Java language-specific questions on topics like immutable strings, garbage collection (GC), and Comparable interfaces, aligning with the Java backend role I applied for. I was later informed of my selection for the subsequent rounds.
Technical Round II (Virtual teams call): This round was another Problem Solving/Data Structures & Algorithms session with two problems. One problem required an ad hoc approach, and the other was the Valid Sudoku problem. I successfully answered both questions with correct and efficient solutions. A few hours later, HR contacted me to confirm my advancement to the next stage.
Manager Round (Virtual teams call): This round focused on Design and Implementation. I was presented with a Low-Level Design (LLD) problem: to design a Java application capable of converting various data types (e.g., Integer, String, Map, List) into JSON format, with specific conversion rules provided. I was given 1 hour and 15 minutes to design and implement the solution on an IDE while the interviewer observed. I successfully implemented the problem using appropriate design patterns, specifically the strategy pattern, and the interviewer seemed satisfied with my approach.
HR Round (Virtual teams call): After successfully clearing the initial technical and managerial rounds, an HR round was scheduled to finalize the process. This involved standard discussions regarding my motivation for changing roles and compensation expectations.
Overall, I found the interviewers to be friendly and supportive, and the general difficulty level of the interview process was medium. I was ultimately offered the Senior Software Engineer I role at MakeMyTrip, which I was very pleased to accept.
Interview Questions (4)
Given an array of non-negative integers arr, you are initially positioned at start index. When you are at index i, you can jump to i + arr[i] or i - arr[i]. Your goal is to reach any index with a value of 0. You can assume that you can always reach the end of the array. The problem involves determining if it's possible to reach any index where the value is 0. (The problem description is based on the LeetCode link and common understanding of Jump Game III).
You are given an n x n 2D matrix representing an image, and you need to rotate the image by 90 degrees clockwise. The rotation must be performed in-place, meaning you must modify the input 2D matrix directly without allocating another 2D matrix. (The problem description is based on the LeetCode link and common understanding of Rotate Image).
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to these rules: Each row must contain the digits 1-9 without repetition. Each column must contain the digits 1-9 without repetition. Each of the nine 3x3 sub-boxes of the grid must contain the digits 1-9 without repetition. (The problem description is based on the LeetCode link and common understanding of Valid Sudoku).
I was tasked with designing and implementing a Java application that could convert various data types, specifically Integer, String, Map, and List, into JSON format. The problem statement provided explicit rules for how each data type should be converted. I had 1 hour and 15 minutes to complete the design and implementation on an IDE, in front of the interviewer.
Preparation Tips
Based on my experience, I would strongly advise practicing Data Structures and Algorithms extensively. It's also vital to develop a good understanding of design patterns and to be highly proficient in your primary programming language. My preparation focused on these areas, which proved to be very beneficial during the interviews.