Summary
I recently interviewed for an SDE II Backend position at Jupiter Money, undergoing multiple rounds focused on Data Structures & Algorithms and Low-Level Design. Unfortunately, I struggled with time management in the LLD round and was ultimately rejected.
Full Experience
I applied for the SDE II Backend role at Jupiter Money a few months ago, and their recruiter promptly reached out to me. They clarified that each round would be an elimination round, setting clear expectations for the process.
My first round was a Data Structures and Algorithms (DSA) challenge. I was given 45 minutes to solve two mandatory questions:
I managed to solve both within the given timeframe.The second round was another DSA session. The problem presented was similar to LeetCode's Minimum Falling Path Sum, but with additional constraints introduced by the interviewer, which made it a bit more complex. I was primarily asked to discuss my approach and algorithm rather than write the full code. After the problem discussion, we delved into an in-depth conversation about my past projects.
The third round was a Low-Level Design (LLD) interview, where I was tasked with designing a cache system. Regrettably, I did not manage my time properly during this round, which impacted my performance significantly, leading to a 'Not Hired' outcome.
Interview Questions (4)
Given an array piles of integers representing the number of bananas in n piles, and an integer h representing the total hours Koko has, find the minimum integer k such that Koko can eat all the bananas within h hours. Each hour, Koko chooses a pile and eats k bananas from it. If the pile has less than k bananas, she eats all of them instead and will not eat any more bananas during this hour.
The problem was similar to LeetCode's Minimum Falling Path Sum, which involves finding the minimum sum of a falling path in a square array. However, the interviewer added specific constraints to the original problem, increasing its complexity. I was asked to discuss my approach rather than provide a full implementation.
I was asked to design a cache system. This typically involves discussing key aspects such as data structures (e.g., hash maps, doubly linked lists), cache eviction policies (e.g., LRU, LFU), thread safety, and capacity management.
Summary
I applied through Jupiter Money's job portal and received an offer for the SDE-1 role after successfully navigating through three technical rounds, a bar-raiser, and an HR interview.
Full Experience
Jupiter Money Interview Experience
I applied for the SDE-1 position through Jupiter Money's job portal, and their HR team reached out to me shortly after. The interview process was structured into three technical rounds, followed by a bar-raiser round, and concluded with a final HR discussion.
First Round
After a brief introduction, the interviewer presented me with two LeetCode medium questions. I found both problems to be quite straightforward and was able to solve them with ease.
Second Round
This round also consisted of two distinct questions. The first challenge was to determine the minimum steps required to reach a number 'b' from a starting number 'a', with permissible moves being either moving one step back or doubling the current step. I initially approached this using recursion and dynamic programming, but it seemed there might have been a more direct mathematical solution. The second question involved finding the bottom view of a binary tree, which I successfully solved.
Third Round (Design Round)
In this design round, I was tasked with designing a food delivery application. The interviewer asked me to articulate the requirements first, then discuss the system's overall flow, define the API routes, and finally move into designing the database schema. I experienced a slight hesitation when deciding between SQL and NoSQL databases, but the interviewer was incredibly supportive, engaging in a constructive discussion and questioning my choices, which ultimately helped me refine my design decisions. We also had a detailed discussion about my past projects during this round.
Interview Questions (5)
Design a system that manages seat reservations. Implement SeatManager(int n) which initializes a SeatManager object that manages n seats numbered from 1 to n. All seats are initially available. Implement int reserve() which fetches the smallest-numbered unreserved seat and reserves it. Implement void unreserve(int seatNumber) which unreserves the seat with the given seatNumber.
Find the minimum steps to reach from a number 'a' to a number 'b'. At any point, a player can go 1 step back (current_step - 1) or double the current step (2 * current_step).
Given a binary tree, return the bottom view of the tree. The bottom view of a binary tree is the set of all nodes that are visible when the tree is viewed from the bottom.
Design a food delivery application. This involved outlining requirements, discussing the system flow, defining API routes, and designing the database schema, including considerations for choosing between SQL and NoSQL databases.