rippling logo

Rippling Interviews

16 experiences1,261 reads48 questions6% success rate
Rippling SDE-1 Interview Experience
rippling logo
Rippling
SDE-1Remote2 yearsOffer
December 11, 202555 reads

Summary

Successfully cleared the SDE-1 interview at Rippling with a focus on Data Structures & Algorithms and Low Level Design. The interview process included two rounds: a 60-minute DS&A session with two specific problems and a 60-minute Low Level Design round for an Employee Access Management System. The candidate received an offer after completing both rounds.

Full Experience

My interview experience at Rippling for the SDE-1 position was both challenging and enlightening. I started with the first round, which focused on Data Structures & Algorithms. The first question required me to calculate the total duration to complete all tasks and determine the order of task execution given two 2D lists representing tasks and their dependencies. The second question was similar to LeetCode 1136 - Parallel Courses, which I had encountered before but needed to apply my knowledge in a slightly different context.

For the second round, I was tasked with designing an Employee Access Management System. The problem required implementing several methods to manage access types for employees across various resources. This round tested my understanding of object-oriented design and system architecture, as I had to ensure that the methods handled multiple access types and efficiently retrieved access information.

Overall, the interview process was thorough and provided a good balance between theoretical knowledge and practical problem-solving. I felt confident in my preparation and was happy to receive an offer after successfully completing both rounds.

Interview Questions (2)

Q1
Task Scheduling with Dependencies
Data Structures & AlgorithmsHard

You are given two 2D lists:
- taskList: Each row contains [task_id, duration]
- dependencyList: Each row contains [task_a, task_b], meaning task_a must be completed before task_b can start
Return the total duration to complete all tasks and the order in which tasks will be completed.

Q2
Employee Access Management System
System Design

Design an Employee Access Management System with the following requirements:
Entities:
- Multiple employees (E1, E2, E3, ..., En)
- Multiple resources (R1, R2, R3, ..., Rn)
Three types of access: READ, WRITE, ADMIN
Methods to Implement:
- grant_access(employee_id, resource_id, access_type)
- revoke_access(employee_id, resource_id, access_type)
- retrieve_access(employee_id, resource_id)
- retrieve_resources(employee_id)

Preparation Tips

For the interview, I focused on practicing Data Structures & Algorithms problems, especially those related to graph theory and topological sorting. I also reviewed system design concepts and practiced designing simple systems. I made sure to understand the problem statements thoroughly and think through possible edge cases. Additionally, I prepared for behavioral questions and practiced explaining my thought process clearly.

Rippling | Staff Engineer | Interview Experience | BLR
rippling logo
Rippling
Staff EngineerBLR10 yearsRejected
October 14, 2025156 reads

Summary

I applied for a Staff Engineer position at Rippling via referral. I went through a System Design round focusing on designing an aggregator app with personalized feeds. Despite feeling the interview went well, I ultimately did not receive an offer.

Full Experience

I applied for the Staff Engineer position at Rippling through a referral. With 10 years of experience, I was invited for Round 1, which focused on High-Level Design (HLD).

The interview involved designing a new aggregator app with personalised feeds based on user interest and liking of publication house.

My proposed solution involved polling APIs of all subscription houses and storing feeds in an RDS database, considering a low volume of 5 million writes per day.

For reads, which had a requirement of 100k QPS, I suggested caching the top 100 feeds per category and publication house. User feeds would then be generated on the fly when a request came in. Since all these components would be in Redis, I expected feed generation to be very fast. I also suggested pre-generating feeds and caching them in Redis.

At the end, I felt the interview went pretty well, but I did not hear back from the recruiter, so I am assuming I was rejected. Some feedback from the recruiter would have been appreciated.

Interview Questions (1)

Q1
Design Aggregator App with Personalized Feeds
System Design

Design a new aggregator app with personalised feeds based on user interest and liking of publication house.

Rippling | Senior Software Engineer | Reject
rippling logo
Rippling
Senior Software EngineerRejected
October 6, 2025134 reads

Summary

I interviewed for a Senior Software Engineer role at Rippling, where I was tasked with designing a delivery tracking system. Despite my successful implementation, I was ultimately rejected, likely due to a floating-point precision issue I encountered.

Full Experience

My algorithmic programming round at Rippling for a Senior Software Engineer position began with a discussion about AI tooling, which felt more like an opt-in despite initial communications suggesting liberty to use it. I chose to opt-out. The interview question required me to design and implement a Delivery Tracking System, including methods such as addDelivery, addDriver, and payUpToTime. A critical constraint involved handling cost precision at 1-second intervals. I found the problem quite straightforward and managed to complete the core implementation within 35 minutes, following a brief introductory chat and project discussion.

The interviewer then spent some time validating my solution with his own test cases. For simplicity, I had opted to use double for cost calculations, a decision I explicitly mentioned and the interviewer seemed to accept. However, my solution exhibited some rounding errors, which the interviewer noted, attributing them to the use of double. Despite this, he generally found the solution acceptable. I received a rejection email three days later. I believe the rejection was primarily due to these precision errors, or perhaps the interview concluded without me having an opportunity to refine the error handling.

Interview Questions (1)

Q1
Delivery Tracking System Design with Precision Constraint
System DesignMedium

Design and implement a Delivery Tracking System. The system should support operations such as addDelivery(delivery_id, driver_id, start_time, end_time, cost), addDriver(driver_id, name), and payUpToTime(driver_id, current_time). A crucial 'gotcha' constraint specifies that cost calculations must maintain precision at 1-second intervals.

Senior SDE at Rippling
rippling logo
Rippling
Senior SDEOngoing
September 26, 2025136 reads

Summary

I interviewed for a Senior SDE role at Rippling. The interview process included System Design, Web Development, and Coding rounds. The outcome is currently pending.

Full Experience

I recently interviewed for a Senior SDE position at Rippling. The interview process was structured into several rounds:

System Design

I was asked to design a hotel reservation system similar to Expedia. The key areas of focus were:
  • Searching for rooms by date and location.
  • Reserving rooms.
  • Ingesting room availability from third-party hotels.

Web Question

This round involved designing models and APIs for a questions and answers platform like Stack Overflow. I found this round a bit challenging as we already had some boilerplate locally, which made it difficult to assess how I performed. There were also some follow-up questions related to scaling and sharding.

Coding

The coding round presented a problem where I needed to implement functions for a music player. Specifically, I had to:
  • Add a song.
  • Play a song by a user.
  • Print analytics based on the number of times a song was played, ordered by the descending number of unique users.
  • Retrieve the 3 most recent unique songs played by a user.
The result of my interview is still TBD.

Interview Questions (3)

Q1
Design Hotel Reservation System
System Design

Design a hotel reservation system like Expedia. Focus on:

  • Searching for rooms by date and location.
  • Reserving rooms.
  • Rooms availability ingestion from 3rd party hotels.

Q2
Stack Overflow Models and APIs Design
Other

Design models, APIs for questions and answers in a Stack Overflow-like system. Additionally, discuss scaling and sharding related questions.

Q3
Music Player Analytics and Recently Played Songs
Data Structures & Algorithms

You have functions to add a song, play a song by a user, and print analytics. You need to:

  1. Print analytics based on the number of times a song was played in descending order of the number of unique users.
  2. Get the 3 most recent unique songs played by the user.

Senior Software Engineer | Rippling | Reject
rippling logo
Rippling
Senior Software Engineer7 yearsRejected
September 16, 2025201 reads

Summary

I interviewed for a Senior Software Engineer position at Rippling and was ultimately rejected. While I performed strongly in some coding and managerial rounds, my performance in the System Design rounds, particularly the booking system design, led to the rejection.

Full Experience

I interviewed at Rippling for a Senior Software Engineer role with 7+ years of experience, primarily gained in startups. The process comprised five rounds.

Round 1: Delivery Cost Tracking System

This round focused on designing and implementing a delivery cost tracking system. It felt like a standard Rippling question, and I believe I performed well, even tackling the additional complexities. The verdict was 'Strong Hire'.

Round 2: Manager Round

For the manager round, I prepared a detailed PowerPoint presentation showcasing my most challenging project. The manager didn't delve much into technical specifics, mainly asking about SLAs and task division. I received another 'Strong Hire' verdict.

Onsites

Round 3: Rule Evaluator

The first onsite round involved designing and coding a rule evaluator. This was another common Rippling problem. I chose C++ and ended up writing a substantial amount of OOP code. In hindsight, I should have tested my code more frequently midway through the process. While I completed the implementation, there were some errors I needed to debug. This round resulted in a 'Lean Hire'.

Round 4: Design Booking System

This was a System Design round where I was asked to design a booking system. I frankly admit I was unprepared for High-Level Design rounds, having focused on Google interviews just two days prior. The interviewers expected a very thorough, complete answer and didn't engage in the collaborative discussion style I'd experienced at Google. I felt I absolutely bombed this round, receiving a 'No Hire'.

Round 5: Design Stack Overflow APIs

The final round involved designing Stack Overflow APIs. I didn't feel extensive preparation was needed here, as it primarily involved standard follow-up questions on scalability and security. I performed well, getting a 'Hire to Strong Hire' verdict.

Given my poor performance in the System Design round, I decided not to follow up with my recruiter for feedback and received a rejection email two days later. The recruiters were genuinely nice, probably the best I've encountered.

Interview Questions (4)

Q1
Design a Delivery Cost Tracking System
Data Structures & Algorithms

Design and implement a system to efficiently track delivery costs, potentially including features like real-time updates, cost aggregation, and handling various delivery parameters. The problem involved solving additional parts as discussed during the interview.

Q2
Implement a Rule Evaluator
Data Structures & Algorithms

Design and implement a flexible rule evaluation engine. This involved substantial object-oriented programming in C++, requiring careful design and implementation to handle various rule types and conditions.

Q3
Design a Booking System
System DesignHard

Design a comprehensive, scalable booking system. This system design problem required a full-length answer detailing high-level architecture, API design, database considerations, and scalability strategies, without much interviewer guidance or collaborative discussion.

Q4
Design Stack Overflow APIs
System Design

Design the core APIs for a platform similar to Stack Overflow. The discussion included standard follow-up questions concerning scalability, security, and how to handle various functionalities like question posting, answering, voting, and search.

Preparation Tips

My preparation included crafting a detailed PowerPoint presentation for the managerial round, focusing on my most challenging project. However, I confess my preparation for High-Level Design rounds was insufficient, especially due to my focus on prior Google interviews. My main advice to others would be to thoroughly study Rippling's standard questions and be prepared to deliver clean, functional code, as they expect finished solutions rather than collaborative problem-solving.

Rippling SDE-2 Phone Screening – Interview Question
rippling logo
Rippling
SDE-21.9 yearsOngoing
August 31, 202595 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.

Rippling SDE2
rippling logo
Rippling
SDE IIOngoing
August 25, 202598 reads

Summary

I interviewed for an SDE2 position at Rippling where I was tasked with designing and implementing a system for managing delivery driver payments, progressing from basic cost tracking to managing paid and unpaid deliveries.

Full Experience

During my interview for the SDE2 role at Rippling, I was presented with a comprehensive coding and system design challenge. The core task was to build a robust system for a food delivery company to manage its delivery drivers and calculate their earnings. I first had to implement functions to add drivers with their hourly rates, record delivery start and end times, and then aggregate the total cost of all deliveries for a live dashboard. This initial phase heavily emphasized good OOP practices and efficient data storage for time-based data. Subsequently, the problem evolved, requiring me to add functionalities for payment tracking. This involved implementing a payUpTo function to mark deliveries as paid based on a specific time and a getTotalCostUnpaid function to report outstanding payments. The problem statement explicitly mentioned that the solution did not need to be thread-safe, allowing me to focus on the core logic and data structures.

Interview Questions (2)

Q1
Delivery Driver Payment System (Initial Design)
Data Structures & Algorithms

Food delivery companies employ tens of thousands of delivery drivers who each submit hundreds of deliveries per week. Delivery details are automatically sent to the system immediately after the delivery.

Delivery drivers have different hourly payment rates, depending on their performance. Drivers can take on, and be paid for, multiple deliveries simultaneously.

If a driver is paid $10.00 per hour, and a delivery takes 1 hour and 30 minutes, the driver is paid $15.00 for that delivery.

We are building a dashboard to show a single number - the total cost of all deliveries - on screens in the accounting department offices.

At first, we want the following functions:

  • addDriver(driverId [integer], usdHourlyRate [float])
    • The given driver will not already be in the system
    • The hourly rate applies per delivery, and a driver can be paid for simultaneous deliveries
  • recordDelivery(driverId [integer], startTime, endTime)
    • Discuss the time format you choose
    • Times require minimum one-second precision
    • The given driver will already be in the system
    • All deliveries will be recorded immediately after the delivery is completed
    • No delivery will exceed 3 hours
  • getTotalCost()
    • Return the total, aggregated cost of all drivers' deliveries recorded in the system
    • For example, return 135.30 if one driver is in the system and has a total cost of 100.30 USD and another driver is in the system and has a total cost of 35.00 USD.
    • This will be used for a live dashboard
    • Do not worry about exact formatting

All inputs will be valid.

Share any decisions or assumptions you make. If you do anything differently in this interview than you would in production, share that.

Before coding, let's discuss how you will store the time data and why.

We want to see good OOP practices. You may look up syntax using a search engine.

Q2
Delivery Driver Payment System (Add Payment Tracking)
Data Structures & Algorithms

The analytics team uses the live dashboard reporting function you built to see how much money is owed in total to all drivers.

Add the following functions:

  • payUpTo (payTime)
    • Pay all drivers for recorded deliveries which ended up to and including the given time
  • getTotalCostUnpaid()
    • Return the total, aggregated cost of all drivers' deliveries which have not been paid

The solution does not need to be thread-safe or handle concurrency.

Rippling Interview Experience | SDE I | Onsite
rippling logo
Rippling
SDE I
August 11, 20258 reads

Summary

I went through Rippling's SDE I interview process, which included an Online Assessment, two DSA rounds (one of which I struggled with and had to re-attempt), and one Low-Level Design round. Despite positive feedback on the LLD and second DSA, I was ultimately rejected.

Full Experience

I appeared for Rippling's SDE I hiring process.

Round 1 - Online Assessment

2 LC medium-hard quesitons were asked on HackerRank with a time limit of 1 hour. I do not remember the exact questions, but they were oriented towards hard side. Q1 was solved within 20-25 mins, but Q2 had multiple failing test cases due to incorrect approach. I applied a less known approach and was able to pass all test cases.

After few weeks of the OA, I got call from the recruiter. They were asking to appear for an onsite interview the next day. They also discussed about current compensation, notice period and the standard behavioural questions.

The interviews had 2 rounds - DSA & LLD, both on the same day.

Round 2.1 - Onsite Interview 1 (DSA)

In the first onsite round, question was around Median of 2 Sorted Arays. I was able to implement the brute force and then optimal solution but the interviewer wanted something more optimized - even more optimized than a O(log (n)) solution. Got a not so well feedback here.

Round 2.2 - Onsite Interview 2 (LLD)

In the second onsite round, I was asked to implement an Employee Access Management system, and 3 functionalities - grant, revoke and get. I had to ensure I cover all the use cases and present an optimized solution. The interviewer looked quite happy with my solution.

Shortly, they reached out to have another DSA round because the first one did not go well. So another DSA round was scheduled the next day.

Round 2.3 - Onsite Interview 3 (DSA)

I was given 2 arrays - managers and reportees where managers[i] was the manager of reportee[i] with the constraint 1 <= managers[i], reportees[i] <= n. CEO or head of the company was always represented with 1. I had to find the level of the fartheset employee from the CEO. So, I had to basically find the height of the org tree. I did it within 30 mins. All the test cases given by the interviewer passed. They looked pretty satisfied.

Then came a follow-up question - the CEO wants the org tree not to go beyond a height h for organizational efficiency i.e any employee beyond a level h would report directly to the CEO and the subordinates in that subtree would remain as in the original tree. I had to implement this optimally such that the number of reportees to the CEO remain minimized, while also keeping the overall height within h.

Within the time left, I had to discuss and implement the solution. I was able to implement a greedy approach and the interviewer looked pretty happy and I hoped for a positive feedback.

Final Result - Rejected

Still wondering why :(

Interview Questions (4)

Q1
Median of Two Sorted Arrays
Data Structures & AlgorithmsHard

The question was around Median of 2 Sorted Arrays. I was able to implement the brute force and then optimal solution but the interviewer wanted something more optimized - even more optimized than a O(log (n)) solution.

Q2
Employee Access Management System Design
System Design

I was asked to implement an Employee Access Management system, and 3 functionalities - grant, revoke and get. I had to ensure I cover all the use cases and present an optimized solution.

Q3
Height of Organizational Tree / Farthest Employee Level
Data Structures & AlgorithmsMedium

Given 2 arrays - managers and reportees where managers[i] was the manager of reportee[i] with the constraint 1 <= managers[i], reportees[i] <= n. CEO or head of the company was always represented with 1. I had to find the level of the farthest employee from the CEO, which means finding the height of the organizational tree.

Q4
Optimize Organizational Tree Height and CEO Reportees
Data Structures & AlgorithmsHard

Follow-up: The CEO wants the organizational tree not to go beyond a height h for organizational efficiency. Any employee beyond level h would report directly to the CEO, and their subordinates in that subtree would remain as in the original tree. I had to implement this optimally such that the number of direct reportees to the CEO remained minimized, while also keeping the overall height within h.

Rippling | Senior Software Engineer
rippling logo
Rippling
Senior Software Engineer10 years
July 8, 202510 reads

Summary

I interviewed for a Senior Software Engineer position at Rippling, which involved two coding rounds, an engineering manager discussion, a system design challenge, and a machine coding exercise. I successfully passed all rounds with strong positive feedback.

Full Experience

Years of Experience: 10 years
Previous Companies: Top-tier startups and product-based enterprise companies

Interview Experience Summary

  1. Coding Round 1 (60 mins)

    Problem focused on Travel Expense Calculation
    Included a follow-up problem
    Emphasis on strong OOP principles and clean code practices

    ✅ Verdict: Strong Yes

  2. Engineering Manager Round (60 mins)

    Deep dive into latest project and system-level thinking
    Covered behavioral questions aligned with Rippling Leadership Principles

    ✅ Verdict: Strong Yes

  3. Coding Round 2 (60 mins)

    Problem related to Driver Delivery Service
    Included 2 follow-up scenarios
    Focus on best coding practices, OOP, time complexity, and alternative solutions

    ✅ Verdict: Strong Yes

  4. System Design Round (60 mins)

    Design problem: News Feed Service
    Discussed fault tolerance, consistency vs availability, monitoring strategies, and scalability

    ✅ Verdict: Yes

  5. Machine Coding Round (90 mins)

    Task: Web API design
    Follow-up discussions on security, design decisions, concurrency, testing strategies, and production readiness

    ✅ Verdict: Strong Yes

Interview Questions (2)

Q1
Design News Feed Service
System DesignHard

Design problem: News Feed Service. Discussed fault tolerance, consistency vs availability, monitoring strategies, and scalability.

Q2
Web API Design
System Design

Task: Web API design. Follow-up discussions on security, design decisions, concurrency, testing strategies, and production readiness.

Rippling | SDE 2 | Offer | India
rippling logo
Rippling
Software Engineer SDE 2India4 years
June 16, 202515 reads

Summary

I interviewed for a Software Engineer SDE 2 position at Rippling in India, bringing 4+ years of experience, and ultimately received an offer. The interview process involved multiple rounds, including technical screenings with coding and system design, followed by onsite rounds focusing on coding, system design, and a hiring manager discussion.

Full Experience

🔹 Rippling Interview Experience – Software Engineer

Total Exp: 4+ Years

📌 Round 1: Technical Screening (Coding + System Design Flavor)

Problem: Build a delivery cost tracking system
Asked in 3 parts:

  1. Cost Calculation
    add_driver(driverId)
    add_delivery(driverId, startTime, endTime)
    get_total_cost()
    Discussed approach, data structures, and time complexity before coding.
  2. Payment Tracking
    pay_up_to_time(upToTime)
    get_cost_to_be_paid()
  3. Analytics
    get_max_active_drivers_in_last_24_hours(currentTime)
    Didn’t implement fully due to time, but the approach was discussed and accepted.

📌 Onsite Round 1: Coding + System Design

Problem: Music Analytics System

  1. Most Played Songs by Unique Users
    add_song(songId)
    play_song(userId, songId)
    print_analytics()
  2. Recently Played Unique Songs
    print_recently_played(userId)
    print_recently_played(userId, k)

📌 Onsite Round 2: Hiring Manager Round

Behavioral + Project discussion
HR shared prep questions. Discussed one main project in detail.

📌 Onsite Round 3: Coding + Rules Engine

Problem: Validate business rules on expenses
Rules like max total amount, seller type limits, expense type restrictions
Discussed how to model rules dynamically and validate them against expenses.

📌 Onsite Round 4: System Design

Problem: Design a Google News-like aggregator
Talked about crawling, indexing, ranking, and scalability.

Final Verdict: Offer (Verbal confirmation from HR after a few days)

Interview Questions (4)

Q1
Delivery Cost Tracking System
System Design

Build a delivery cost tracking system with the following functionalities:

  1. Cost Calculation
    add_driver(driverId)
    add_delivery(driverId, startTime, endTime)
    get_total_cost()
  2. Payment Tracking
    pay_up_to_time(upToTime)
    get_cost_to_be_paid()
  3. Analytics
    get_max_active_drivers_in_last_24_hours(currentTime)
Q2
Music Analytics System
System Design

Design a Music Analytics System with the following functionalities:

  1. Most Played Songs by Unique Users
    add_song(songId)
    play_song(userId, songId)
    print_analytics()
  2. Recently Played Unique Songs
    print_recently_played(userId)
    print_recently_played(userId, k)
Q3
Validate Business Rules on Expenses
Data Structures & Algorithms

Validate business rules on expenses. Rules like max total amount, seller type limits, expense type restrictions.

Q4
Design Google News-like Aggregator
System Design

Design a Google News-like aggregator.

SSE| Rippling| Reject
rippling logo
Rippling
SDE II
June 3, 202510 reads

Summary

I was rejected after a Coderpair round at Rippling where I was asked to implement a rule validation system for expenses.

Full Experience

Got this question in Coderpair round:

We have a list of expense and rules. Aim is to validate rules for each expense.

Each expense is similar to

{ 
expenseid: "1"
itemId: "Item1"
expensetype: "Food"
amountInUsd : "250"
sellerType : "restaurant"
SellerName "ABC restaurant"

}

List of rules similar to
- Total expense should not be > 175
- Seller type restaurant should not have expense more that 45
- Entertainment expense type should not be charged


Run the rules on expense and flag the rule which do not satisfy. Implement following:

evaluateRule(List<rule> , List<expense>)

Interview Questions (1)

Q1
Expense Rule Validation System
Data Structures & AlgorithmsMedium

We have a list of expense and rules. Aim is to validate rules for each expense.

Each expense is similar to

{ 
expenseid: "1"
itemId: "Item1"
expensetype: "Food"
amountInUsd : "250"
sellerType : "restaurant"
SellerName "ABC restaurant"

}

List of rules similar to
- Total expense should not be > 175
- Seller type restaurant should not have expense more that 45
- Entertainment expense type should not be charged


Run the rules on expense and flag the rule which do not satisfy. Implement following:

evaluateRule(List<rule> , List<expense>)

SSE | Rippling | Bengaluru | Reject
rippling logo
Rippling
SDE IIBengaluru9 years
May 26, 20259 reads

Summary

I had a technical screening interview for a Senior Software Engineer role at Rippling in Bengaluru, which involved a multi-part coding question on managing driver deliveries, and I was ultimately rejected without feedback.

Full Experience

I was reached out by a recruiter on LinkedIn with an opportunity with Rippling. I had a discussion over Zoom with her. I got my screening / Technical Interview discussion scheduled after almost a week.

Recruiter had mentioned that I am free to use AI (ChatGPT, Copilot etc) in this round, but I need to tell that to the panelist. The evaluation criteria will be defined accordingly. If I choose not to use, the criteria will be different.

Technical Screening Round

The interview asked me the below question Part 1 Given a list of some drivers and the deliveries they are making, need to write a code to compute the total cost of all deliveries. It needed to have 3 methods

  1. add driver(driverId)
  2. add deliveries(startTime, endTime)
  3. getTotalCost() getTotalCost was needed in optimised time, which I provided by computing cost at the time of adding the delivery - interviewer had agreed to this approach.

I explained the approach and solved by defining 3 classes Driver, Delivery and the main service. The panelist tested it against his test cases and got the expected results.

I had asked for the evaluation criteria to which the interviewer had said let's solve the question as much as possible

Part 2 Add two more functionalities

  1. payUpToTime(upToTime) -> settle the delivery cost up to this time
  2. getCostToBePaid() -> get the remaining delivery costs left after settling the payment Discussed the approach for this in O(n), he wanted more optimal solution. Discussed approach for production env based on events to trigger completion and keeping a track of completed deliveries. Then to be paid is as simple as paid minus total cost (from part 1) Agreed on the approach, wrote the code, tested it against interviewer's test cases - worked as expected

Part 3 Implement a method to provide simultaneous deliveries across drivers. He was only expecting the approach. Discussed by sorting and then checking the overlaps. Seemed satisfied and we closed the discussion.

I did all of this without using any chatgpt or copilot.

Received the email from recruiter on the next working day of rejection :| No reasons, no feedback. What were they expecting, god knows. When I replied back to the recruiter seeking feedback - she mentioned, she is yet to receive detailed feedback and haven't heard back since then.

Anyways, giving back to the community in case it helps anyone.

Interview Questions (3)

Q1
Driver Delivery Cost Management - Part 1
Data Structures & AlgorithmsMedium

Given a list of some drivers and the deliveries they are making, need to write a code to compute the total cost of all deliveries. It needed to have 3 methods:

  1. add driver(driverId)
  2. add deliveries(startTime, endTime)
  3. getTotalCost() getTotalCost was needed in optimised time.
Q2
Driver Delivery Cost Management - Part 2: Payment Settlement
Data Structures & AlgorithmsHard

Add two more functionalities to the existing system:

  1. payUpToTime(upToTime) -> settle the delivery cost up to this time
  2. getCostToBePaid() -> get the remaining delivery costs left after settling the payment. The interviewer wanted an optimal solution beyond O(n).
Q3
Driver Delivery Cost Management - Part 3: Simultaneous Deliveries
Data Structures & AlgorithmsHard

Implement a method to provide simultaneous deliveries across drivers. The interviewer was only expecting the approach.

Rippling | Bengaluru | 5.5 yoe | Reject
rippling logo
Rippling
bengaluru5.5 yearsRejected
January 23, 202577 reads

Summary

I interviewed for a role at Rippling in Bengaluru, bringing 5.5 years of experience. Despite making it through several rounds, including phone screening, managerial, and onsite coding/system design, I was ultimately rejected due to issues with code clarity and getting sidetracked during system design.

Full Experience

I had my interview process with Rippling in January 2025 after applying online and being contacted by a recruiter. The recruiter was helpful, providing clear expectations for each round.

Round 1: Phone Screening

I was told to expect a base problem and then scale it up, along with discussing an approach for a third scale-up. The base problem involved calculating total payments for delivery drivers given their hourly rates and delivery logs. I approached this by designing a class with functions to add drivers and rates, log deliveries (using epoch seconds), and calculate the total amount due. For the first scale-up, I had to consider clearing payments at a specific time and returning the total unpaid amount, for which I discussed an approach. I don't recall the third scale-up problem, but I only needed to outline my approach for it.

Managerial Round

This round was largely behavioral. I discussed my past experiences, projects, and general work. We also touched upon my roles as a mentor and mentee, as well as aspects of my work I'd like to change versus what's currently working well. Interestingly, the recruiter provided a script beforehand, so I mostly focused on preparing my answers.

Onsite Rounds

System Design

The challenge was to design a system for Rippling's customers to upload documents for internal audit review, with each document having a defined review completion time. I found myself getting bogged down with 'nice-to-have' features, and the interviewer had to guide me away from these tangents. I believe I focused too much on non-essential functional requirements.

Coding Round 1

The base problem involved processing a list of songs and user plays to return songs ordered by the descending count of unique users who played them. For the scale-up, I needed to return the top 3 most recently played songs per user. We had a discussion about the time complexity implications if the number '3' was arbitrary. Overall, I feel I struggled significantly with the clarity of my code in this round.

Coding Round 2 was never scheduled as I did not advance past the previous rounds.

Given my performance, particularly my coding clarity issues and getting sidetracked in system design, I wasn't surprised that I didn't receive an offer. I believe I performed poorly.

Interview Questions (6)

Q1
Calculate Total Driver Payments
Data Structures & Algorithms

Given a list of delivery drivers, their per-hour payment rates, and a list of deliveries each driver has completed (with delivery times in epoch seconds), design a system to calculate the total amount to be paid to all drivers combined. The solution should include functions to add drivers with their rates, record deliveries, and retrieve the total payment due.

Q2
Calculate Payments with Settlement Time and Unpaid Totals
Data Structures & Algorithms

Extend the delivery driver payment system. Given a specific settlement time, calculate the total amount to be paid up to that time. Additionally, implement a function that returns the total unpaid amount for all outstanding deliveries.

Q3
Experience and Mentorship Discussion
Behavioral

Discuss your past work experiences, including projects and responsibilities. Elaborate on your roles as a mentor and mentee, and reflect on aspects of your work you'd like to improve and those that are currently successful.

Q4
Document Upload and Audit Review System Design
System Design

Design a system that allows Rippling's customers to upload documents, which are then routed for review by an internal audit team. The system must also account for a specified review completion time for each document.

Q5
Songs by Most Unique Users
Data Structures & Algorithms

Given a list of songs and information about which users played which songs, return a list of songs ordered in descending order based on the count of unique users who have played each song.

Q6
Top K Most Recently Played Songs Per User
Data Structures & Algorithms

Extend the music playing system to return the top K most recently played songs for each user. Discuss the time complexity implications when K is an arbitrary number.

Preparation Tips

My preparation for the managerial round specifically involved reviewing and preparing answers based on a script provided by the recruiter.

Rippling L6 Interview Experience | Reject
rippling logo
Rippling
l6Rejected
January 22, 202596 reads

Summary

I interviewed for an L6 position at Rippling, completing five challenging rounds including DSA and System Design, but ultimately received a rejection.

Full Experience

My interview journey for an L6 role at Rippling consisted of five distinct rounds, culminating in a rejection.

Round 1 - DSA

This round involved designing a Music Player similar to Spotify. The core methods to implement were addSong, playSong, and printMostPlayedSongs, which required tracking unique user plays. The follow-up extended this to retrieving the getLastThreeSongs played by a specific user. There was another follow-up mentioned by the recruiter post-interview, but I didn't get time to address it during the session.

Round 2 - Hiring Manager

This round focused entirely on general behavioral questions, assessing my fit and experience.

The next 3 rounds happened in the office.

Round 3 - DSA

The challenge here was to design a Key Value Store. I had to implement get, set, and deleteKey methods. The first follow-up introduced support for transactions (begin, commit, and rollback). I immediately clarified if nested transactions were required, and the interviewer confirmed they would be for a subsequent follow-up. I spent a considerable amount of time implementing the single-level transaction support. The second follow-up was to support nested transactions, but unfortunately, time ran out before I could tackle it.

Round 4 - DSA

This round focused on designing an Excel sheet. I needed to implement set (handling cell names like A1 and values including simple numbers or formulas like "=9+10"), reset, and print (showing both raw and computed values). The follow-up extended the set functionality to support values that referenced other cells, such as "=A1+10".

Round 5 - System Design

The final round was a system design interview where I was tasked with designing Google News.

Interview Questions (5)

Q1
Design Music Player like Spotify
Data Structures & AlgorithmsHard

Design a Music Player like Spotify with the following methods:

  • int addSong(string songTitle); // add a song to your music player with incremental song ids starting from 1
  • void playSong(int songId, int userId); // user plays a song that is present in the music player
  • void printMostPlayedSongs(); // print song titles in decreasing order of number of unique users' plays

Follow up:

  • vector<int> getLastThreeSongs(int userId); // get last 3 unique songs played by a given user
Q2
General Behavioral Questions
Behavioral

This round focused on general behavioral questions.

Q3
Design Key Value Store with Transactions
Data Structures & AlgorithmsHard

Design a Key Value Store with the following methods:

  • string get(string key);
  • void set(string key, string value);
  • void deleteKey(string key);

Follow up 1: Support transactions - begin, commit, and rollback. I spent a lot of time coding for one level of transactions.

Follow up 2: Support nested transactions. No time was left to address this.

Q4
Design an Excel Sheet
Data Structures & AlgorithmsHard

Design an excel sheet with the following methods:

  • void set(string cell, string value); // cell can be A1, B2. value can be like "10", "1" or even excel formulae like "=9+10" and "=-1+-10+2"
  • void reset(string cell); // reset the cell
  • void print(); // print all the cells along with their raw and computed values

Follow up: Extend solution to support values like "=A1+10" where A1 is a cell name.

Q5
Design Google News
System DesignHard

Design Google News.

Rippling - SSE - Rejected
rippling logo
Rippling
SDE IIRejected
January 16, 202559 reads

Summary

I interviewed for a Staff Software Engineer position at Rippling, focusing on Data Structures & Algorithms. Despite feeling confident about my production-level code and handling follow-up questions, I was unfortunately rejected because I only completed one out of three required problems.

Full Experience

I recently interviewed for a Staff Software Engineer (SSE) position at Rippling. My interview consisted of one Data Structures & Algorithms (DSA) round, which was conducted via a Hackerrank codepair link. The round started with brief introductions from both my interviewer and myself.

The primary task was to implement three APIs for a delivery system application. The core requirement was that a delivery driver has an hourly rate for performing deliveries. I was asked to implement the following three APIs:

  • addDriver(driverId: integer, hourlyRate: float)
  • addOrder(driverId, startTime, endTime): I also had to mention my choice of data type for time and justify it.
  • getTotalCost() for all the deliveries.

I found the initial question straightforward.

There were also follow-up questions:

  • "What is the issue with using float and double as data types for currency, and what data type should you use instead?"
  • "What changes would you make in the code if we wanted to update the hourly rate of a driver?"

I felt optimistic about this round because I was able to write production-level code, handling concurrency and other best practices, and I answered all the follow-up questions effectively.

Despite my performance, I was ultimately rejected. The recruiter mentioned that I had only solved one out of the three required questions. They stated that for the other two questions, at least the approach needed to be discussed. I had specifically asked the interviewer about the time limit and the number of questions at the beginning. The interviewer responded casually, advising me to proceed at my normal speed and ensure the code was production-level. I believe that if the interviewer had set clearer expectations, I would have planned my execution strategy differently.

Interview Questions (3)

Q1
Delivery System API Implementation
Data Structures & Algorithms

Implement three APIs for a delivery system where drivers have an hourly rate.

  1. addDriver(driverId: integer, hourlyRate: float)
  2. addOrder(driverId, startTime, endTime): Describe the choice of data type for time and its justification.
  3. getTotalCost() for all deliveries.
Q2
Currency Data Type Issues
Other

What are the issues with using float and double as data types for currency, and what data type should be used instead?

Q3
Update Driver Hourly Rate
Other

What changes would you make in the existing code if the requirement was to update the hourly rate of a driver?

Senior Software Engineer | Rippling
rippling logo
Rippling
Senior Software Engineer8 yearsWithdrew
January 3, 2024102 reads

Summary

I recently interviewed at Rippling for a Senior Software Engineer position. The process included a screening round with a LeetCode Hard problem and a behavioral discussion, followed by three challenging on-site system design rounds. Despite performing well in most rounds, I was down-leveled to SDE-2 due to one system design interview and ultimately declined the offer, as I was seeking an SDE-3 or higher role.

Full Experience

I wanted to share my interview experience at Rippling, as I found LeetCode very helpful in my preparation.

Screening Rounds:

  • Round 1 (Hire): Design Excel Sheet
    This round involved a coding challenge to design an Excel sheet with sum formula functionality.
  • Round 2 (Hire): Past Projects and Experiences
    This was a behavioral round where I discussed my past projects, how I approached them, and my leadership experiences.

On-Site Rounds:

  • Round 1 (Strong Hire): Design In-memory Key-Value Store
    I was tasked with designing an in-memory key-value store, including transaction capabilities.
  • Round 2 (Lean - Hire): Design News Aggregator and Feed System
    This round focused on designing a news aggregator and feed system. The interviewer seemed a bit challenging, starting questions before I fully grasped the scope, which made it a tough luck experience.
  • Round 3 (Hire): Design Stack Overflow API End-to-End
    This was a 1 hour 30 minute round, split into two 45-minute segments. The goal was to code a working and production-ready end-to-end API, similar to Stack Overflow's functionality, within each 45-minute slot.

After the interviews, HR reached out and informed me that I was down-leveled to an SDE-2 designation, which I attributed to the system design interview where I struggled. Since I was specifically looking for SDE-3 or higher positions, I declined the offer.

Interview Questions (5)

Q1
Design Excel Sheet with Sum Formula
Data Structures & AlgorithmsHard

Design an Excel sheet that supports basic cell operations and a sum formula feature. This problem typically involves parsing cell inputs, handling dependencies, and recalculating values efficiently when cells are updated.

Q2
Past Projects and Experiences Discussion
Behavioral

Discuss past project experiences, detailing the approach taken, specific contributions, and any leadership roles or initiatives. Be prepared to elaborate on challenges faced and solutions implemented.

Q3
Design In-memory Key-Value Store with Transactions
System Design

Design an in-memory key-value store that supports standard put, get, and delete operations. The key requirement is to also implement transactional capabilities, allowing for atomic commits and rollbacks of multiple operations.

Q4
Design News Aggregator and Feed System
System Design

Design a scalable news aggregator and feed system. Consider aspects like data ingestion from various sources, content storage, user personalization for news feeds, and efficient delivery to millions of users.

Q5
Design Stack Overflow API End-to-End
System Design

Design the API for a platform similar to Stack Overflow, covering all aspects from database schema to API endpoints. The round was 1 hour 30 minutes, divided into two 45-minute sections, requiring the coding of a working and production-ready API end-to-end within each 45-minute segment.

Have a Rippling Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Rippling.