Experience: 5 months as a Software Developer
College student’s interviews are also the same, so you can read this if you are in college.
I applied through a Referral from a Zomato Employee.
After the Referral, I got a call from HR for interviews after 2 weeks.
There were three rounds of interviews in total.
R1 Interview (60 minutes)
At first, the interviewer asked me about the work I did in my previous company. Then, he went deep dive into Database Connection Pooling, Processes and Threads. I answered everything here.
- If you don’t know connection pooling, then read the first part of this thread.
After that, he gave me 2 SQL questions:
- You are given a table, “parents”. Having the following columns:
a) Person
b) Parent: Parent of the person
c) Status: Dead or Alive
There are two rows with the same person for two different parents (mother and father’s name) and their status.
Write the SQL query to find the number of persons whose at least one parent is Alive. - For the same table, Write the SQL query to find number of persons whose both parents are Alive.
I solved both questions.
- If you know the GROUP BY and HAVING clause, then these questions were easy.
After that, one DSA question is asked:
He told the question in a story kind of way (like codeforces), but I am telling here the simplified version of the question:
You are given a graph. Answer the following question:
- Number of components.
- For each query, you will be given two nodes. Determine if both nodes lie in the same component or not.
I also solved this question easily. My solution takes O(N) time for pre-computation, and to answer each query in the second question, it takes O(1) time.
I got a call from HR after 4–5 days that I cleared this round. The next round was scheduled within a few days.
R2 Interview (75 to 80 minutes)
It was taken by a Senior Engineer with around 6 years of experience.
One system design (high-level design) question and one open-ended question were asked.
The interviewer first asked me about my experience in internships. Then, after 5 minutes of introduction and normal technical discussion, he gave me one system design problem.
Question: In the new year, many restaurants are closed, but after the New Year, they open their shop. After opening a particular restaurant, Zomato wants to send a notification to the users that this restaurant is available. Before sending the notification, Zomato also checks that delivery partners are available in that area; if they are available, then only send the notification.
I had to propose a highly scalable architecture that can handle millions of users at Zomato’s scale.
There was a long discussion of around 1 hr 10 minutes on this problem.
- If you don’t know System Design, then read this blog. After that, you can easily solve these kinds of problems.
In the last 10 minutes, the interviewer asked a second question: Write the code of reverse search that we do in the command line.
If you don’t know what reverse search is, when you type something in the terminal and press CTRL + R, you get the suggestion for the previous matching command you executed. If you have a Ubuntu or Mac terminal, then try this.
Basically, in short, I had to write code that determines if some part of the given string matched with any of the previous strings, then return the previous string.
I wrote the code well by following OOPs and making class, methods with public and private.
The naive solution is simple, but trie was used to optimise it. I told the interviewer about Trie’s use case, but I didn’t know the implementation because I never used Trie in competitive programming, so I skipped this data structure. However, I still cleared this interview because I answered each and every question correctly during the whole interview except for the implementation of Trie.
R3 Interview (30 minutes)
It was not an elimination round. If you cleared R1 and R2, then you are selected.
This round was taken by a VP. He had around 20 years of work experience.
In this round, he mostly told me about Zomato’s culture, work-life balance, etc. He also told me the compensation for this role.
Verdict: Selected
Some Tips:
- Competitive Programming is not required. You can clear this company with basic leetcode skills.
- Make sure that you are in good practice with SQL questions before interviews. Best Resource to prepare SQL: Click Here. Medium tag problems are really good.
- Prepare your projects, past experiences and resume very well.
- Prepare System Design also. It is not asked in FAANG or other big tech companies for fresher roles, but startups do ask for it.
- Best resource for System Design: Click Here
- Learn the internal implementation of Map, Set that we use in C++ STL (or Java Collections). It was not asked in my interview, but it was asked from one of my friends in his Zomato Interview.
- Zomato Interviews are very unpredictable, so don’t depend on interview experiences to prepare for this company.
- Luck is required.