Extend rules for trip-level aggregates and outputs

Quick Overview

This interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Extend rules for trip-level aggregates and outputs states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

Extend rules for trip-level aggregates and outputs

Company: Rippling

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

Extend the same system to support aggregate trip‑level rules. Implement handling for rules like: ( 1) A trip’s total expenses cannot exceed $2000; ( 2) Total meal expenses per trip cannot exceed $200. In the provided sample, trip "002" violates both rules. Update the design and the evaluateRules return type so the output includes per‑trip violations alongside per‑expense violations. Describe grouping/aggregation strategy, evaluation order, explainability for aggregates, performance considerations, and how these results integrate into the expenses API used by many companies.

Overview: This interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Extend rules for trip-level aggregates and outputs states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

|Home/System Design/Rippling
Rippling logo
Rippling
Aug 7, 2025
mediumSoftware EngineerTechnical ScreenSystem Design
21
0

Extend rules for trip-level aggregates and outputs

Extend Rules Engine: Aggregate Trip-Level Policies

Context

You previously built an expense policy engine that evaluates per-expense rules (e.g., "a single meal cannot exceed $50"). Extend that system to support aggregate, trip-level rules that operate over groups of expenses for the same trip.

Assume each expense has at least: expenseId, tripId, employeeId, category, amount, currency, incurredAt. Currency normalization to a policy currency (e.g., USD) is available.

Requirements

Add support for aggregate rules including (but not limited to):

  1. A trip’s total expenses cannot exceed $2,000.
  2. Total meal expenses per trip cannot exceed $200.

In the provided sample, trip "002" violates both rules. Update the design and the evaluateRules return type so the output includes per-trip violations alongside per-expense violations.

Describe:

  • Grouping/aggregation strategy (how expenses are grouped and metrics computed)
  • Evaluation order (per-expense vs. per-trip and how updates flow)
  • Explainability for aggregates (what evidence is returned and how it’s human-readable)
  • Performance considerations (throughput, latency, incremental updates)
  • How these results integrate into the expenses API used by many companies

Provide:

  • Updated component design for aggregate rules
  • A precise return type/schema for evaluateRules that includes per-trip violations
  • A short, concrete example showing trip "002" violating both aggregates

Clarifying Questions to Ask Guidance

  • Clarify users, core use cases, read/write patterns, scale, latency, availability, and data retention.
  • State explicit assumptions before making sizing or architecture decisions.
  • Prioritize the functional path first, then address reliability, security, observability, and rollout.

What a Strong Answer Covers Guidance

  • A scoped requirements summary with concrete non-goals and success metrics.
  • API, data model, architecture, consistency, capacity, and operations.
  • Reasoned trade-offs among simple and scalable designs, including bottlenecks and failure modes.
  • A validation, monitoring, migration, and launch plan appropriate for the risk level.

Follow-up Questions Guidance

  • What breaks first at 10x traffic or data volume?
  • How would you degrade gracefully during dependency failures?
  • What metrics and alerts would prove the design is healthy after launch?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...