Rippling Software Engineer Interview Experience — An Extensible Expense Rule Engine

Rippling·Software Engineer·May 2026
Technical Screenmedium

In the Rippling phone coding interview, I was given a set of expenses and rules. I needed to run every rule against every expense and identify each rule that the expense violated.

An expense looked like this:

{
  "expenseId": "1",
  "itemId": "Item1",
  "expenseType": "Food",
  "amountInUsd": 250,
  "sellerType": "restaurant",
  "sellerName": "ABC restaurant"
}

Example rules included:

  • Total expense should not be greater than 175.
  • A restaurant seller should not have an expense greater than 45.
  • An entertainment expense should not be charged.

The method to implement was:

evaluateRule(List<Rule>, List<Expense>)

For example, a $250 food expense from a restaurant violated both the total-expense limit and the restaurant-seller limit.

The interview focused on how I abstracted and implemented the rules. I considered putting each rule behind a Rule interface or protocol so that every implementation would decide whether an expense violated that rule. We also discussed making the rule engine extensible: adding a rule later should require a new Rule implementation without modifying the existing core logic. Overall, the problem emphasized OOP and extensible design rather than hard-coding a collection of if and else statements.

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Rippling
Role
Software Engineer
Rounds
Technical Screen
Difficulty
medium
Interview date
May 2026
Questions from this interview
1 question

Real Rippling interview experiences

First-hand reports from Rippling candidates — the rounds, the questions they were asked, and how it went.

All 30 Rippling interview experiences