Jupiter Money Interview Experience (SDE2 | SDE II) Backend
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.