10M+Bill payments
~2-3k RPSPeak read path
5xProduct revenue

Problem

Bills lived across many billers and categories with fragmented discovery and no unified way to manage, rank, remind, or re-engage users. The experience needed a cleaner architecture that old app versions could still talk to.

Approach

  • Built the bill management service and the recommend-bill, manage-bill, and recharge-plan-search APIs behind a unified bill APIs layer.
  • Added ranking and search so users could find the right bill fast, and reminders plus reward/offer loops to bring them back.
  • Re-architected Pay Tab (v2) with a compatibility layer so new and old app versions kept working through the migration.
  • Partnered across lending, gateway, and data-science systems to power onboarding, aggregation, and real-time offer segments.

Outcomes

  • 01Unified bill management behind one service and shipped ranking, search, reminders, and reward loops on the Pay Tab.
  • 02Scaled the read path to ~2-3k RPS at peak while serving 10M+ bill payments.
  • 03Grew product revenue 5x as Pay Tab became a primary bills surface on the app.
  • 04Delivered Pay Tab v2 re-architecture with a compatibility layer that kept legacy clients working through the migration.

The work, chapter by chapter

01

Bill management

One service to manage bills across billers and categories, with onboarding and aggregation.

  • Built the bill management service and the recommend-bill and manage-bill APIs.
  • Added onboarding for BBPS bills alongside bill aggregation, with a compatibility layer for old app versions.
  • Surfaced the bill carousel on both home and Pay Tab through the new unified bill APIs path and the legacy path.
02

Ranking & search

Help users find the right bill fast with rule-based ranking and full-text search.

  • Used rule engines to rank bills by relevance for each user.
  • Indexed bill plans in Elasticsearch to power search across bills.
03

Reminders & reward loops

Bring users back with timely reminders and reward/offer loops.

  • Built reminder flows that re-engage users around due bills.
  • Wired real-time offer segments from user segmentation into reward/offer loops on the tab.
04

Technical re-architecture

Pay Tab v2 and unified bill APIs: a cleaner foundation built to be reused.

  • Designed the unified bill APIs (end-to-end design docs) as the shared backbone for bill features.
  • Shipped Pay Tab v2 with an aggregation service and a compatibility layer for legacy clients.
  • Drove cross-team integrations across lending, gateway, and data-science teams.
05

Performance at scale

Profiled the hot paths and cut CPU, memory, fleet size, and recurring prod incidents.

  • Ran iterative profiling across services to find the real CPU and memory offenders rather than guessing.
  • Fixed database connection spikes through query fixes, cached hot bill lookups, and trimmed redundant offer calls.
  • Added read replicas for high-throughput reads on the discovery path.
~90% → ~30%Peak service CPU
Before
After
~50% fewerFleet size
Before
After
0 (CPU/mem/DB)Prod incidents

Lessons

  • A re-architecture only pays off if the compatibility layer for old clients is airtight.
  • Discovery (ranking + search) and re-engagement (reminders + rewards) are what make a bills surface actually used.