District by Zomato | SDE-1 Backend | Gurugram
Recently went through the hiring process for a Backend Engineer / SDE-1 position at District by Zomato.
I had around one year of internship experience at the time of the interview.
There were two technical discussions. Both were fairly interactive.
Round 1 - Problem Solving + Backend
The interview began with a DSA problem based on an integer array and a given value k.
The task was to determine the maximum-length contiguous segment in which the frequency of every number stays within k.
I approached it using a two-pointer/sliding-window technique combined with a hashmap. After explaining the idea, I walked through an example and discussed the complexity before implementing the solution in C++.
The conversation then shifted towards backend engineering. A lot of the questions were connected to technologies and concepts mentioned in my resume.
Discussed topics such as:
How PostgreSQL indexes affect query performance
Identifying slow queries using
EXPLAIN ANALYZEReducing database overhead through batching
Differences between stateful and stateless services
Designing REST endpoints that return large datasets
Choosing between Kafka and SQS
Partitioning and message ordering in Kafka
Handling duplicate messages safely
Monitoring services with Prometheus and Grafana
Problems caused by high-cardinality metrics
The interesting part was the depth of the discussion. Whenever I mentioned an approach, the interviewer usually followed up with questions around the reasoning behind it, possible alternatives, and what could happen under higher load.
The conversation was comfortable overall, and I was given enough time to explain my thought process rather than having to rush through the answers.
Round 2 - API Design + Implementation
The second round focused heavily on backend design.
The initial requirement was to build an API that could return a user's District Money transaction history with pagination.
i used different ways of handling pagination and discussed the trade-offs between offset-based and cursor-based approaches.
For the cursor approach, we considered using createdAt together with transactionId so that the position within the result set could be tracked reliably. This also led to a discussion around suitable composite indexes, request/response structure, and the SQL required to retrieve the data efficiently.
Then the interviewer introduced another constraint: the transactions were distributed across three separate tables.
That changed the design discussion considerably, talked about:
Whether
JOINorUNION ALLwould be appropriateFetching records independently from each table
Combining the results within the application
Maintaining ordering across multiple sources
Continuing pagination correctly after merging the datasets
The behavior of the solution as the volume increased
The round also required actual implementation. I had to write the backend logic as well as the SQL, rather than stopping at an architectural explanation.
At one point, the interviewer asked:
Apart from offset and cursor, what other way can you paginate?
I wasn't able to come up with another option immediately. The interviewer mentioned page-number pagination.
I explained that page-number pagination is generally implemented using an offset internally, where the offset can be calculated as:
(page - 1) × limit
I still wasn't completely sure what distinction the interviewer was looking for, but it was an interesting discussion.
The Part I Struggled With
The biggest challenge for me was the implementation itself.
The interviewer expected the code to be written cleanly and independently, without using an AI coding assistant. That's where I realized I had become somewhat dependent on AI-assisted development in my regular workflow.
Without those tools, my implementation wasn't as clean or structured as I wanted it to be.
That was probably the most useful takeaway from the process for me. AI can make development significantly faster, but it's still important to stay comfortable with writing, structuring, and debugging code independently when the situation demands it.
Result
I was not able to clear the process and was rejected after the second round.
Recommended Reads
IBM Round 2 Physical Coding Assessment Experience
I recently appeared for the IBM Round 2 coding assessment in physical mode . Question 1: Array-Based Logic We were given an array of integers. For each element,
Does language effect in DSA ??
So I am curious about whether the lang matters for DSA in today's industry too ?
Keychain | Lead Backend Engineer | Interview Experience | Rejected
The interview process involved an initial discussion with a Senior Engineering Manager, an HLD round, a take-home assignment, a review of the assignment, and a
Databricks Hiring | Software Engineer, Backend
About Role Company: Databricks Position: Software Engineer - Backend Experience: 3+ years Location: Bengaluru, India Apply Here What You’ll Build Develop founda
PhonePe | Software Engineer | Interview Experience | Selected
Company: PhonePe Role: Software Engineer Experience: 3 years and 4 months Location: Bangalore Final Result: Selected The interview process consisted of four rou
Great breakdown, Thanks for writing this up.
Backend part was quite hard man for fresher