InMobi | SDE 2 | Cleared & Offered
Summary
I cleared all rounds and received an offer from InMoin for the SDE 2 position. The interview process included technical rounds focused on DSA, system design, and high-level design, with a strong emphasis on system resilience and architecture.
Full Experience
After 4.2 years of experience, I went through a comprehensive interview process at InMoin. The first round was a technical DSA interview where I solved two problems related to binary search and graph theory. The third round was a high-level design interview focused on system resilience, where I discussed designing a distributed job scheduler with requirements for high availability and durability.
The fourth round was another technical interview covering DSA and logic, with problems on finding minimum and maximum elements in an array and connecting disconnected components in a graph. The fifth round was a low-level design interview where I designed a railway reservation system, covering entities like users, trains, and seat booking logic. The final rounds were with the hiring manager and leadership, focusing on technical ownership and handling cross-team dependencies.
Interview Questions (5)
A variation of the Koko Eating Bananas problem. The task was to determine the minimum rate at which Koko can eat all bananas in a given number of hours, using binary search to efficiently find the solution.
A direct application of the Evaluate Division problem. The task was to evaluate the value of a variable given a set of equations using a graph-based approach.
Given a graph with multiple disconnected components, the task was to find the minimum number of edges required to connect all components.
Design a distributed job scheduler with requirements for high availability, durability, and exactly-once processing. Key discussion points included managing job statuses, database choices for persistence, and handling retries with dead-letter queues.
Design a railway reservation system similar to IRCTC. Requirements included defining core entities like users, trains, stations, routes, seats, and bookings. The design also covered concurrency handling during seat booking and core booking logic implementation.
Preparation Tips
To prepare for the interview, I focused on mastering system design concepts, especially those related to high availability and resilience. I practiced solving DSA problems, particularly those involving graph theory and binary search. For the system design rounds, I reviewed design patterns and best practices for distributed systems. I also worked on writing clean, modular code and practicing whiteboard coding to ensure clarity and correctness in my solutions.