Back to Projects
Case StudySeptember 2024

Product Backend at Scale — 0 to 10,000 Users

Owned end-to-end backend development for a product scaling from zero to 10,000+ users in weeks — built in Go on AWS, then migrated to C#/.NET on Azure with zero downtime, maintaining 99.9% uptime throughout.

10,000+ users scaled99.9% uptimep95 1200ms → 280msZero-downtime migration
GoC#.NETAzureAzure FunctionsAzure Service BusRedisSQL ServerApplication InsightsGitHub Actions

Product Backend at Scale — 0 to 10,000 Users

Mission

Build and own the complete backend for a fast-scaling product, while preserving reliability through major architectural change and continuous feature delivery.

The Challenge

The system had to absorb hyper-growth immediately, support heavy day-to-day traffic, and integrate with external platforms (CRM and video) without slowing the user experience. Midstream, business requirements forced a cloud and runtime migration from Go on AWS to C#/.NET on Azure, but service continuity still had to remain uninterrupted.

Architecture

  • Initial production backend delivered in Go on AWS for rapid launch and early scale.
  • Migrated core services to C#/.NET on Azure with a zero-downtime migration plan.
  • Introduced asynchronous processing with Azure Service Bus (queues + DLQ) to remove heavy work from synchronous API paths.
  • Added Redis-backed caching for high-frequency read paths and integration metadata.
  • Strengthened observability with Application Insights, structured logs, correlation IDs, dashboards, and alerts.
  • Improved SQL performance via targeted indexing and query tuning.

Key Integrations

HubSpot CRM

Implemented OAuth2 (authorization code + refresh token) and webhook-based synchronization for contacts and deals, with reconciliation logic to keep data aligned.

Vimeo Integration

Built metadata sync, Redis-backed read acceleration, and reconciliation jobs for upload/status drift handling across provider and internal state.

Outcomes

  • Scaled 0 → 10,000+ users in weeks.
  • Sustained ~35,000 API requests/day.
  • Maintained 99.9% uptime throughout.
  • Reduced p95 latency from 1,200ms → 280ms.
  • Reduced MTTR from ~3 hours → ~25 minutes.
  • Improved report generation from 45 seconds → 6 seconds.
  • Reduced CRM data mismatch by ~45%.
  • Improved Vimeo processing success rate from 92% → 99.5%.
  • Achieved cost savings of ~£320/month.
  • Completed zero-downtime migration (Go on AWS → C#/.NET on Azure).

Trade-offs & Decisions

The migration traded short-term delivery speed for long-term ecosystem fit and operational consistency with Azure. Moving heavy work to asynchronous workflows increased architectural complexity, but delivered lower latency, better resilience, and clearer recovery paths under failure.