Summary
This post details my 3-round interview experience at Grab for an SSE role, covering DSA, System Design, and a behavioral round.
Full Experience
Date : March 2025
Total number of rounds : 3
It was the hiring drive
Round 1: DSA
https://leetcode.com/problems/paint-house-iii/
Round 2 : System design
Design UPI like system.
Round 3 : HM
Mostly behavioural
-------
Verdict : https://leetcode.com/discuss/post/6742731/grab-sse-bangalore-by-anonymous_user-ey68/
Interview Questions (2)
The problem asked was Paint House III. The full problem statement can be found at the provided LeetCode link.
Design a system similar to India's Unified Payments Interface (UPI).
Summary
I interviewed for a Senior Software Engineer (SSE) position at Grab in Bangalore, completing three rounds covering data structures, algorithms, system design of payment systems, and leadership principles, ultimately receiving an offer.
Full Experience
Round 1 (~1 hours)
Problem 1: Graph colouring problem. Dont remember exact problem but related to bipartite graphs and dividing graph into two. Solved with solution. Medium
Problem 2: Linked list problem. Deep copying a linked list with Next pointer and Random pointer on every node. Solved with solution with a follow up (required some help here). Medium
Additional: Brief discussion on my experience with scale and payment systems.
Round 2 (~1.5 hours)
Focus: HLD of payment systems.
We started with a simple payment service and then had in-depth discussion on availability and reliability aspects of payment systems.
Also discussed a scheduler service.
Used excalidraw for diagrams and texts.
Round 3 (~1.5 hours)
Focus: HLD of Payment systems.
Discussion around vendor integration and challenges faced in order completion flow. On reconciliation systems.
Emphasis was placed on system scalability, fault tolerance, and real-world trade-offs.
Used excalidraw for diagrams and texts.
Discussion on LPs like disagree and commit, leading by example etc.
Offer details
https://leetcode.com/discuss/post/6673237/grab-sse-offer-bangalore-by-littlestar64-8rfy/
Interview Questions (5)
A graph colouring problem related to bipartite graphs, focusing on dividing the graph into two sets.
A linked list problem requiring deep copying a linked list where each node has a 'next' pointer and a 'random' pointer.
Design a payment service, discussing availability, reliability aspects, and a scheduler service. Diagrams were used.
Design a payment system, focusing on vendor integration, challenges in order completion flow, and reconciliation systems. Emphasis on system scalability, fault tolerance, and real-world trade-offs. Diagrams were used.
Discussion on various leadership principles (LPs) such as 'disagree and commit' and 'leading by example'.
Summary
I recently interviewed at Grab for a Senior Software Engineer position in Bangalore. The process included four rounds covering Data Structures & Algorithms, System Design, Hiring Manager discussion, and a Cultural Fitment round, ultimately leading to an offer.
Full Experience
I had the opportunity to interview at Grab for a Senior Software Engineer role in Bangalore, bringing approximately 6 years of experience in backend development. The interview process was structured into four distinct rounds.
Round 1: Data Structures & Algorithms (1 hour)
This round focused on my problem-solving skills with two exact LeetCode problems. I was asked to solve Longest Palindromic Substring and Trapping Rain Water.
Round 2: System Design - High-Level Design (1 hour)
This was a challenging and engaging round. I was tasked with designing a payment system, specifically how it would operate when a user attempts to pay a merchant via card using a QR code. The interviewer presented three distinct scenarios to consider:
- Both the merchant and the user are onboarded on Grab.
- The merchant is onboarded, but the user is not.
- The user is onboarded, but the merchant is not.
Round 3: Hiring Manager (1 hour)
This round revolved around my past experiences and projects. It primarily involved standard project-related and behavioral questions, where I discussed my contributions and challenges in previous roles.
Round 4: Cultural Fitment (30 minutes)
The final round was a standard cultural fitment interview, designed to assess how well my values and working style aligned with Grab's culture.
Following these rounds, I received an offer from Grab.
Interview Questions (3)
I was asked to design how a payment system would work, considering a user, a merchant's QR, and the user attempting to pay the merchant via card. The design should specifically address three scenarios:
- Merchant & user both onboarded on Grab.
- Merchant is onboarded but the user is not.
- User is onboarded but the merchant is not.
Summary
I interviewed for an SDE I role at Grab in Bangalore. Despite performing well in the coding rounds, I struggled with the system design question and was ultimately rejected.
Full Experience
I was referred by a friend for an SDE I position at Grab. After getting a call from recruiters, I proceeded with the virtual interview rounds.
ROUND 1: DS/Algo
The interviewer introduced himself and immediately presented two coding questions on an online IDE. The first problem was Next Greater Element III, which I struggled with initially, taking a considerable amount of time to find the most optimal solution. The interviewer was very helpful throughout, and I eventually coded it quickly. For the second question, Subarray Sum Equals K, I had encountered it before, so I quickly provided multiple approaches, including the optimal one, and coded it. The interviewer seemed convinced.
ROUND 2: DS/Algo
Two interviewers joined, though only one was active. After introductions, I discussed my current project and work, answering a few simple questions mainly focused on understanding my responsibilities. Then, I was asked to solve Merge k Sorted Lists. I implemented a heap-based approach, and after taking some time to code it, the interviewer seemed satisfied. We discussed alternative solutions and complexity handling, including the complexity of heap creation and its implementation, touching upon Java's PriorityQueue. This round also went quite well.
ROUND 3: Design
This was the round where I believe I faltered. The interviewer, who seemed a bit rude, immediately asked me to design an ATM machine without any prior introduction. Lacking significant experience in system design, I struggled immensely. The interviewer offered no assistance, perhaps expecting me to generate ideas independently. I asked numerous clarifying questions due to my confusion. I sensed during the interview that I wasn't performing well, panicked, and eventually gave up. We briefly discussed some details, but I couldn't answer many of his questions, and even now, I'm unsure how to categorize this as HLD or LLD. I was, and still am, very confused about this round.
ROUND 4: Manager/Behavioral
The interviewer introduced himself and engaged me in a detailed discussion about my work, the technologies I use (DB, cache, AWS, etc.), and my project. I had already prepared a template for explaining my current and college projects, which proved very helpful. This round concluded within 30 minutes.
Unfortunately, I received a quick rejection email without any call or feedback.
Interview Questions (4)
I was asked to design an ATM machine without any introduction. I struggled significantly with this question, asking many clarifying questions due to my lack of experience in system design. The interviewer was unhelpful, and I ultimately panicked and gave up.
Preparation Tips
I prepared a detailed template for explaining my current and college projects, which significantly helped me articulate my experience clearly during the managerial/behavioral round. My key advice for others is to be adequately prepared for basic system design questions and, crucially, to try and remain calm and avoid panicking during challenging rounds.
Summary
I interviewed for an SDE-1 position at Grab in Bangalore, India, in late 2021. Despite performing well in most technical rounds, I was ultimately rejected due to my performance in the Low-Level Design round, which involved implementing an LFU cache.
Full Experience
I have approximately 0.7 years of experience, holding a B.Tech from a Tier-3 institution, having graduated in 2020. My background in problem-solving is extensive, with over 1000+ LeetCode questions solved, an 1800+ rating on Codechef, and a Codeforces Specialist title.
Each interview round was meticulously structured for 1 hour.
Online Assessment:
The online assessment consisted of three questions administered on Codility, where I achieved a perfect 100% score. The problems included an array-based question (LeetCode Medium), a binary tree with path tracing problem (LeetCode Medium), and a graph theory question (LeetCode Medium).
Systems Design:
This round was conducted by two interviewers. After a brief period of general introductions, we delved into the core problem: designing a Microsoft Teams-like Employee Report System. My task was to implement five specific APIs. These APIs covered functionalities such as providing a list of all reportees for a given manager, identifying an employee's direct manager, removing a manager and reassigning their succeeding employees to higher-level managers, and calculating various employee counts. This round leaned heavily towards a machine coding or Low-Level Design (LLD) style, requiring implementation using Object-Oriented Programming (OOP) principles. I utilized a graph algorithm to address the problem. The follow-up discussion explored strategies for preprocessing and caching values to enhance performance for high-volume API requests. Additional discussions touched upon Python, Operating Systems, Stack, Heap, and my motivations for joining Grab. Overall, I felt this round went quite well.
Data Structures and Algorithms:
As I was particularly confident in Data Structures and Algorithms, I approached this round with enthusiasm. I successfully solved a binary tree-based question (LeetCode Medium) within 10 minutes and an array-based question (LeetCode Medium) in another 10 minutes. A follow-up question, requiring an in-place solution for the array problem, took me an additional 20 minutes. With time still remaining, the interviewer presented another string-based question (LeetCode Medium), which I also solved with an optimal approach.
Low Level Design:
In this round, I was tasked with implementing an In-Memory Cache incorporating the Least Frequently Used (LFU) eviction policy. This was a new problem for me, and despite receiving numerous hints, I could only manage to devise an inefficient, heap-based solution. This round proved to be quite challenging, demanding not only the implementation of an in-memory cache but also the intricate LFU algorithm, all while adhering to SOLID/OOP principles. My performance in this round garnered mixed reviews.
Hiring Manager:
The hiring manager round progressed smoothly. We engaged in discussions about my past projects, my current responsibilities, and various technical concepts such as Microservices, Concurrency, Database Management Systems (DBMS), Operating Systems (OS), and REST principles. A specific design question also arose concerning the data model for a system akin to BookMyShow.
Verdict:
Ultimately, I was rejected, primarily due to my performance in the Low-Level Design round. I found the LLD round to be overly difficult, as implementing a complete LFU cache from scratch with full adherence to SOLID/OOP principles seemed impractical within the given time constraints. However, I received positive feedback for all other rounds, and I appreciated the helpful demeanor of the interviewers.
Interview Questions (3)
Design a Microsoft Teams-like Employee Report System. I was required to implement 5 APIs that would handle functionalities such as providing all reportees for a manager, identifying the direct manager of an employee, managing the removal of a manager and redirecting their reports to higher managers, and calculating employee counts. The implementation should follow OOPS principles (similar to a machine coding/LLD exercise). Follow-up discussions involved strategies for preprocessing and caching values to ensure faster results for high-volume API requests.
Implement an In-Memory Cache along with the Least Frequently Used (LFU) eviction policy. This task required applying SOLID/OOPS principles throughout the implementation of both the cache and the LFU algorithm.
During the hiring manager round, I was asked to discuss and design the data model for a system similar to BookMyShow.
Preparation Tips
My preparation for the interviews involved extensive problem-solving practice. I completed over 1000+ LeetCode questions, achieved an 1800+ rating on Codechef, and became a Codeforces Specialist, which significantly bolstered my confidence in algorithmic challenges.