Real, anonymized candidate journeys from recent (2025) Zomato SDE-1 and SDE-2 loops in India β round by round, including what was asked, how the candidate approached it, and the outcome.
One complete journey, start to finish
Round 1 β DSA + System Design
The recruiter set up the first round on a video call, about an hour long. The interviewer started with one DSA problem: an array holding the numbers 1 to n in some order, find the minimum number of swaps to sort it. I first said the brute-force idea, then noticed that since every value tells you exactly where it should go, the array breaks into cycles, and each cycle of length k needs k minus 1 swaps. I wrote that up with a visited array, walked through his example, and got the count right. After that he switched to design and asked me to sketch a schema for scheduling promotional banners in the app. I put down a banners table, a schedule table with start and end times and placement, and then he asked how we would cap how often a user sees the same banner. I added a frequency-tracking table keyed by user and banner with a count and last-shown time. We spent the last few minutes on indexes for that table, and it ended on time.
Round 2 β Project Deep-Dive + LLD + DSA
Round 2 was a few days later, also online, and it had three parts. First the interviewer asked me to pick one project from my resume and explain it. She asked why I had chosen that database and what I would change now. Then she gave me an LLD problem: model a restaurant menu where a pizza can have a size, a crust and a set of toppings, each affecting the price. I started with a MenuItem class, then separate option groups for size, crust and toppings, and a price calculator that added up base price plus each selected option. She asked how I would stop an invalid combination, so I added rules per option group, like exactly one size and at most three toppings. The last part was a DSA question: given historical prices of a dish, suggest a price that sits between the one-third and two-thirds percentile. I first sorted and indexed, then she asked for something faster for a stream of prices, and I described using two heaps to hold the boundaries. I coded the sorted version and explained the heap version.
Round 3 β Managerial
The managerial round was scheduled for the next day, around 30 to 40 minutes with the hiring manager. There was no coding. He started by asking me to walk through my background and why I was applying to Zomato in particular. I talked about using the app daily and being curious about how delivery timing works behind the scenes. Then he asked where I wanted to be in two or three years, and how I handle a situation where a deadline is fixed but the scope keeps changing. I gave an example from a college project where we cut features to ship on time. He asked what kind of team I worked best in and whether I preferred clear tickets or open problems. After that he described what his team owned and asked if I had questions. I asked about how new joiners get their first tasks and about the on-call rotation. The call ended a little early. That same evening the recruiter called and told me I had an offer.
Key takeaway: Practice designing schemas for real product features (promotions, menu configuration) alongside pure DSA rather than only abstract system-design templates β Zomato's rounds pull design questions directly from its own product surface. This candidate received a same-day offer after round 3.
More real interview journeys
The first round of each journey below is shown in full; the rest of each candidate's journey β every remaining round, verbatim β is part of the Placement-Ready PYQ Kit.
Single Technical Round
I got this interview through a referral, and it was a single technical round in Bengaluru. The interviewer opened with Redis: why is it so fast when it is mostly single-threaded? I talked about everything being in memory, the event loop avoiding lock overhead, and then how it scales out with clustering and replicas. Then he moved to Kafka and asked how I would raise consumer throughput and deal with lag. I covered more partitions, more consumers, batching, and monitoring lag per partition. Next was SQL. Orders move through five states, and I had to write a query for the latest state of each order in the last hour while leaving out delivered ones. I used a window function with row_number partitioned by order id, then we discussed which indexes that needs at scale. The last part was machine coding: the Snake and Food game with O(1) movement per tick. I used a deque for the body plus a set for occupied cells, and he pushed on deque versus array when the snake grows. I answered everything, but a few days later the recruiter told me it was a no.
Key takeaway: Even a single generalist SDE-2 round can go deep into infra internals (Redis, Kafka) alongside SQL and machine coding β don't prepare only algorithms. Despite covering every topic asked, this candidate was ultimately rejected, a reminder that breadth alone doesn't guarantee depth was demonstrated well enough on each one.

