โ† All Case Studies
๐Ÿ“ž

Software Engineer ยท Devsloop

Upcall

2021 โ€“ 2022

Full dashboard overhaul, Chargebee billing integration & API monolith migration.

Ruby on RailsChargebeeDashboardPerformanceAPI Migration

๐Ÿ“‹ Project Overview

Upcall is a B2B platform offering managed outbound calling and lead-generation services. I worked on a complete client-facing dashboard revamp, introduced a self-serve subscription billing system via Chargebee, and led the technical migration from a distributed API architecture to a unified Rails monolith โ€” all while improving database performance.

๐ŸŽฏ The Problem

Upcall's existing dashboard was outdated and difficult for clients to navigate. Their billing involved multiple disconnected systems, and the fragmented API architecture made maintenance expensive and deployments risky. Performance issues in the database layer further slowed the product.

โšก My Responsibilities

๐ŸŽจ

Dashboard Revamp

Rebuilt the client-facing dashboard with an entirely new design, improving usability, data visualisation, and navigation flow for Upcall's business customers.

๐Ÿ’ณ

Chargebee Integration

Implemented a self-serve subscription management portal via Chargebee, allowing clients to upgrade, downgrade, and manage billing without contacting support.

๐Ÿ”„

API โ†’ Monolith Migration

Led the migration from a distributed multi-API architecture to a single, maintainable Rails monolith, reducing operational complexity and deployment risk.

โšก

Database Optimisation

Identified slow queries using EXPLAIN ANALYZE, added missing indexes, and introduced a caching layer to dramatically reduce DB load on high-traffic endpoints.

๐Ÿงฉ Key Challenges & Solutions

1

Zero-Downtime API Migration

Migrating from multiple APIs to a monolith without disrupting active clients required a staged approach โ€” first shadowing the old APIs with Rails routes, then gradually deprecating external endpoints while keeping clients unaware of the change.

2

Chargebee Webhook Reliability

Self-serve billing depends on accurate webhook delivery from Chargebee. I implemented idempotent event handling with event deduplication and retry logic to ensure subscription state stayed in sync even during network failures.

3

Dashboard Performance

The new dashboard loaded aggregate data for many clients simultaneously. I introduced query result caching with cache invalidation tied to data-changing events, reducing dashboard load time from seconds to under 200ms.

Let's Work Together

I'm currently available for freelance projects and open to new opportunities. If you have an idea or just want to say hi, send me a message!