Rippling SDE-2 Phone Screening – Interview Question

rippling logo
rippling
SDE-21.9 yearsOngoing
August 31, 202594 reads

Summary

I had a phone screen for an SDE-2 role at Rippling where I was tasked with designing and implementing a service to manage delivery costs with several functional enhancements. I successfully implemented and optimized both parts of the problem.

Full Experience

I interviewed for an SDE-2 position at Rippling. My journey to this interview was a bit unique: initially, I was referred for an SDE-2 role, then my profile was considered for SDE-1 after an online assessment and a recruiter call, but ultimately, they decided to consider me for SDE-2 again. The phone screening focused on a problem that required me to implement a service for managing delivery costs.

In the first part, I designed and coded a service with addDriver, addDelivery, and getTotalCost methods, ensuring getTotalCost was optimized. I precomputed the total cost upon adding deliveries, and my solution passed all custom test cases.

For the second part, I extended the service to include payUpToTime and getCostToBePaid functionalities. I approached this by using a global priority queue where time was represented as epochs, along with the estimated cost, to manage payments and remaining costs. This approach also worked as expected with the interviewer's test cases.

Interview Questions (2)

Q1
Delivery Cost Calculation Service
Data Structures & Algorithms

We are given a list of drivers and the deliveries they are making. Implement a service to compute the total cost of all deliveries. The service should expose three methods:
1. addDriver(driverId)
2. addDelivery(startTime, endTime)
3. getTotalCost()

The getTotalCost() method needed to run in optimized time.

Q2
Delivery Cost Payment Functionality
Data Structures & Algorithms

Add two new functionalities to the existing delivery service:
1. payUpToTime(upToTime) → settle the delivery cost up to this specified time.
2. getCostToBePaid() → get the remaining delivery costs left after settling any payments.

Preparation Tips

My preparation mainly revolved around practicing system design and algorithm implementation. I focused on optimizing data structures and algorithms, which was crucial for methods like getTotalCost. I also made sure I could articulate my thought process clearly, particularly regarding object-oriented design principles and system extensibility, which the interviewer appreciated. I believe a detailed and confident introduction also played a significant role in setting a positive tone for the interview.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!