PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Rippling

Design a flexible expense reimbursement system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design and architecture skills for building a policy-driven, explainable expense reimbursement platform, specifically testing competencies in rule engines and DSL/config design, versioning and immutable evaluations, group-level aggregation and conflict resolution, data modeling and partitioning for scale, API and workflow design, observability/auditing, and access control. As a System Design interview prompt it is commonly asked because it forces candidates to articulate trade-offs between extensibility, explainability, consistency, and performance; the assessment targets practical application of architectural principles with strong conceptual reasoning.

  • hard
  • Rippling
  • System Design
  • Software Engineer

Design a flexible expense reimbursement system

Company: Rippling

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design an expense reimbursement system that supports pluggable, evolvable approval rules and group-level constraints. Requirements: 1) Allow administrators to add/modify rules (e.g., per-category caps, receipt required, merchant whitelist, per-diem by city) without redeploying code; ensure versioning, effective dates, and explainable outcomes. 2) Support grouping expenses by a condition (e.g., same business trip/project, report, or cost center) and enforcing group policies (e.g., total per trip ≤ $2, 500). 3) Resolve conflicts when an item passes item-level rules but the enclosing group fails (e.g., a $20 meal is valid individually, but the trip totals $3,000 and exceeds a $2,500 cap); return a clear decision that distinguishes item-level vs group-level reasons and surfaces which items are only failing due to group constraints. 4) Propose a data model (users, expenses, categories, receipts, trips/projects, reports, groups, rules, rule versions, evaluations, audit logs) and discuss indexing/partitioning for scale. 5) Describe the rule engine design (rule DSL/config schema, execution graph, ordering/precedence, short-circuiting, caching of aggregates, idempotency, and re-evaluation on policy updates). 6) Define APIs and workflows (submit expense, create/update group, evaluate, re-evaluate, manual override, appeal) and specify latency/consistency expectations. 7) Address edge cases (multi-currency and FX timing, split expenses across categories, duplicates, offline receipts, partial approvals, concurrency when the same expense belongs to or moves between groups). 8) Cover observability, auditing, and access controls for financial/PII data, plus rollout strategies (dry-run/A-B) for new policies. Provide a high-level architecture and explain your trade-offs.

Quick Answer: This question evaluates system design and architecture skills for building a policy-driven, explainable expense reimbursement platform, specifically testing competencies in rule engines and DSL/config design, versioning and immutable evaluations, group-level aggregation and conflict resolution, data modeling and partitioning for scale, API and workflow design, observability/auditing, and access control. As a System Design interview prompt it is commonly asked because it forces candidates to articulate trade-offs between extensibility, explainability, consistency, and performance; the assessment targets practical application of architectural principles with strong conceptual reasoning.

Related Interview Questions

  • Prevent Duplicate Payments Under High Load - Rippling
  • Design a personalized news aggregator - Rippling (medium)
  • Design a Scalable News Feed - Rippling (medium)
  • Design Scalable Expense Violation Processing - Rippling (hard)
  • Design several large-scale systems - Rippling (hard)
Rippling logo
Rippling
Sep 6, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
23
0

System Design: Expense Reimbursement with Pluggable Rules and Group Constraints

Context

Design an enterprise expense reimbursement platform where administrators can add or modify approval policies without redeploying code. The system must evaluate expenses at both item and group levels (e.g., per trip/project/report) and return explainable decisions with clear separation of item-level versus group-level reasons.

Requirements

  1. Policy management and explainability
  • Admins can add/modify rules (e.g., per-category caps, receipt required, merchant whitelist, per-diem by city) without code deploys.
  • Support versioning, effective date windows, and immutable historical evaluation (replay) with explainable outcomes.
  1. Grouping and group-level policies
  • Group expenses by a condition (e.g., same business trip, project, report, or cost center).
  • Enforce group policies (e.g., total per trip ≤ $2,500).
  1. Conflict resolution and decision clarity
  • When an item passes item-level rules but the enclosing group fails (e.g., a 20mealisvalidindividually,butthetriptotals20 meal is valid individually, but the trip totals 20mealisvalidindividually,butthetriptotals 3,000 and exceeds a $2,500 cap), return a decision that:
    • Distinguishes item-level vs group-level reasons.
    • Identifies which items are failing only due to group constraints.
  1. Data model and scale
  • Propose a data model (users, expenses, categories, receipts, trips/projects, reports, groups, rules, rule versions, evaluations, audit logs).
  • Discuss indexing and partitioning for scale.
  1. Rule engine
  • Design a rule DSL/config schema, execution graph, ordering/precedence, short-circuiting.
  • Caching of aggregates, idempotency, and re-evaluation on policy updates.
  1. APIs and workflows
  • Define APIs and workflows (submit expense, create/update group, evaluate, re-evaluate, manual override, appeal).
  • Specify latency and consistency expectations.
  1. Edge cases
  • Multi-currency and FX timing; split expenses across categories; duplicates; offline receipts; partial approvals; concurrency when the same expense belongs to or moves between groups.
  1. Observability, auditing, access controls, and rollout
  • Observability, auditing, and access controls for financial/PII data.
  • Rollout strategies (dry-run/A/B) for new policies.
  • Provide a high-level architecture and explain trade-offs.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Rippling•More Software Engineer•Rippling Software Engineer•Rippling System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.