Zomato Interview Experience For SDE-1 Android (Off-Campus) 2022

I applied to zomato through Referral from a random person at zomato who shared a post about hiring SDE 1 in Zomato. I had full-time experience in android development for 10 months as an SDE along with multiple internship experiences. I received the call for the interview. The interviews had the following 2 rounds:

Note – This interview experience contains a lot of terms related to android development. To know about them, google them.

Round 1 (Technical):

  • Duration – 1 hour 15 minutes
  • We started off with my introduction and all stuff have I worked on in android development. Along with the most challenging task I have faced to date.
  • The interviewer asked for more details about my projects. I told him about all the concepts that I have used like RoomDB, Jetpack Navigation, etc.
  • He asked me about my familiarity with data structures. I replied that I had practiced them well and I told him that I knew arrays, trees, linked lists, etc.
  • He gave me a real-life scenario in an android app-based DSA question. Given a list of numbers, find the top 10 numbers in the same.
  • Since I had seen the question before, I took a few minutes and frame the multiple approaches I knew. I told him the base approach of sorting the list (we discussed the complexity of sorting) and then I shared a better solution.
  • I told him about heap data structure and he asked me to explain the heap and its internal functioning along with implementation (we discussed the complete binary search tree, upHeapify, downHeapify, min, and max heap). I was also asked to tell the complexity of the question using a heap.
  • Given a list of objects, create a clone of the given list. ( I told the method of creating a new list then iterating over the old list and adding each object manually. Then he asked me about the list.addAll() function in java, I told him that I don’t know about the internal functioning of the same).
  • Another application-based question – Since several images are loading external libraries in android. Do I have any clue about which method of caching is used by them? I remembered the LRU cache from Operating System. (We discussed how LRU works, its need and how can we implement the same).
  • Another application-based question – given 4 popups that need to be displayed on a screen but no two of them should be displayed at the same time. I had to come up with an approach for the same.
  • The base approach suggested by me – Load the other one as soon as one closes, the interview edited the question – All the 4 events are mutually exclusive. I told a solution by keeping a global boolean variable to check whether a popup is open or not. ( I got the idea of the same from Semaphores in Operating System, I shared the solution and the interviewer was satisfied with the solution.
  • The interviewer asked me about Android App’s size compression using Progaurd, what’s MVVM and how it survives orientation changes, and Dependency Injection.
  • The interviewer asked me how I learned about something new in android development, I answered Documentation + Medium Articles + then tutorials 
  • The interview was over and he asked me if I had any questions. I asked him about a bug that I saw in Zomato’s android application and we had a small discussion over the same.
  • I was shortlisted for the next round.

Round 2 (Technical):

  • Duration – 1 hour 15 minutes
  • We started off with my introduction and all stuff have i worked on in android development. Along with the most challenging task I have faced to date.
  • The interviewer asked me about Clean Code, Coroutines (scopes and dispatchers), Dependency Injection, ANR crashes, Multi-threading, and Layouts in android.
  • The interviewer asked me to open an android studio and design the top layout of a restaurant as in the Zomato app while sharing the screen
  • It took me approx 15 mins to make the same and then we discussed improving the layout hierarchy of the same.
  • Post that we moved on to Data Structures.
  • First DSA Question – Number of subarrays having product less than K. I shared the brute force solution, post discussion on the same interviewer asked me to think of an optimized solution, then I told him a solution using sliding window algorithm. After discussing the same, I was asked to write the pseudo code followed by space and time complexity
  • Second Question – nth node from the end in a linked list. I already knew the solution for the same and just took a few minutes to tell the base and best approach for the same. 
  • I shared the fast and slow pointer approach, I was asked to do a dry run on the given test case and test my approach. I was also asked about the complexity of the code.
  • The interviewer was satisfied with the solution and we moved to other questions.
  • What’s hashing, hashmap and how do we handle the collision cases in the same.
  • How do we do dependency injection without using any external library?
  • The interview was over and he asked me if I had any questions. I asked about when can I hear from the recruiter and I asked about the same bug that I discussed in the previous round.

In both rounds, the interviewers were at senior positions at zomato but still, they were friendly and the interviews were more of a discussion rather than direct answers. Overall the interview experience was great.

I was selected for the SDE 1 Android Position.

For DSA – Leetcode + GFG
For Android Development – Documentation + Medium Articles + tutorials.