Go home Rashid Armand

30+ repos into one platform

After Tembo Health's engineering org went from ten engineers to one, I re-architected a 30+ repo healthcare backend into a single event-driven TypeScript platform on AWS and cut deployment time by about 70%.

Context

Tembo Health is a HIPAA-regulated telemedicine platform for senior care. When its engineering org consolidated from ten engineers to one, I took ownership of the backend. It was 30+ single-purpose repos: services, Lambdas, ETL jobs and shared libraries, each with its own CI pipeline, infrastructure code and dependency set. A change to a shared type meant publishing a library, then bumping and redeploying every consumer by hand. A full-platform deploy meant running 3 to 15 minute pipelines sequentially across all of them, with the deploy order coordinated by hand. Nobody could see which services a change touched until something broke.

The job was to turn that into a backend a small team could extend and reason about, without pausing feature delivery.

What I did

I re-architected it as one event-driven TypeScript platform on AWS: an Nx monorepo with SST on Pulumi for infrastructure, Docker-containerized services on ECS and Lambda, services communicating over SQS, SNS and EventBridge, and shared packages for the clinical server, ops server and analytics so domain models and clients are imported, not published.

Nx’s affected graph means a deploy ships only the services a change touched and their dependents. I migrated repos incrementally, one service at a time, redesigning each service’s interfaces as it moved in, so production kept running the whole time.

Result

Full-platform deployments went from hours of sequential pipelines to under 20 minutes, about a 70% cut, and day-to-day deploys ship only what changed. A shared-type change became one pull request instead of a library release plus a round of consumer bumps. Every service and its dependencies are visible in one codebase, so the blast radius is clear before a change ships.

Everything shipped afterward runs on it: the production AI agent, all ETL, and the partner data pipeline.

Stack

AWS · SST on Pulumi · Nx monorepo · TypeScript · Docker · ECS · Lambda · SQS · SNS · EventBridge