MakeMyTrip | Java SSE2 | Rejected
Summary
I interviewed for a Java SSE2 role at MakeMyTrip, facing rounds on data structures, system design, and core Java technologies. Despite my performance, I was rejected, possibly due to my primary experience being in C++.
Full Experience
My interview process at MakeMyTrip for a Java SSE2 position took place around September/October.
The first round focused on data structures and algorithms, where I was tasked with solving 'Jump Game 1' and 'Jump Game 2'. Additionally, I encountered a problem that asked me to find the last remaining element when repeatedly removing the Kth element from a circular array.
The second round shifted towards Low-Level Design (LLD). I was asked to design the LLD of Uber and verbally explain my algorithm for driver allocation. This round also included some basic High-Level Design (HLD) questions.
The final round was primarily intended to be an HLD discussion. However, the interviewer also posed several questions related to Java, Kafka, Multithreading, and Idempotency. Behavioral questions were also part of this round. The discussion extended to my past projects, covering how I analyze issues, my experience with CI/CD, and how monitoring and visualizations were implemented.
Unfortunately, I was rejected after this round. While I believe I answered most questions correctly, I suspect my background being primarily in C++ might have been a factor, especially given their focus on backend systems. Despite the outcome, I found my interactions with both the interviewers and the recruiter to be positive.
Interview Questions (4)
Given an array of non-negative integers nums, you are initially positioned at the first index, and each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index.
Given an array of non-negative integers nums, you are initially positioned at the first index, and each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of jumps.
Given a circular array, elements are removed sequentially. Starting from a certain point, every Kth element is removed. The process continues until only one element remains. Determine which element is the last one remaining.
Design the low-level components of the Uber application, focusing on aspects like driver allocation, ride matching, and trip management.