Uber pays millions of driver-partners across hundreds of jurisdictions. In many of these, Uber is legally required to retain a portion of partner earnings (for taxes, regulatory fees, social contributions) and remit those amounts to the appropriate authorities. Every country has different rules, different beneficiaries, different schedules.
The Problem
Before this system existed, the operations team handled retain-and-remit manually. Each country's compliance workflow was a spreadsheet-driven process: calculate withholding amounts, generate reports, initiate payments, reconcile. Adding a new country meant building a new manual workflow from scratch. The process took about 3 days per cycle.
The System
I designed and built a generic, extensible platform that could handle any country's remittance requirements through configuration rather than code changes. The core ideas:
- Country-agnostic core — the withholding, remittance, and reconciliation logic is generic. Country-specific rules plug in as configuration.
- Job scheduler — handles asynchronous file processing, reconciliations, partner communications, weekly disbursement adjustments, and earnings reporting to authorities. Each job type runs in configurable time slots.
- End-to-end design — I created the ERD, proposed the modular low-level design, led implementation, and wrote the runbook and rollback strategy.
The Result
The system reduced the operations team's workload from 3 days to a few hoursper cycle. Adding a new country went from "build a new workflow" to "add configuration."
The design principle that mattered most: compliance requirements look wildly different across countries on the surface, but the underlying operations (withhold, report, remit, reconcile) are the same everywhere. Building the abstraction at the right level — generic operations, configurable rules — is what made it extensible without being over-engineered.