Migrated from Heroku to a cloud platform in 9 weeks.
B2B platform hit Heroku ceilings. We landed them on ECS with managed Postgres, zero downtime, and a runbook the team actually uses.
What we walked into.
Heroku Performance-L dynos were maxed out at peak. The team had hit Heroku Postgres connection ceilings twice in the previous quarter. EU data residency was a new contract requirement, and Heroku could not satisfy it in their region.
The engineering team had never run AWS. They wanted to migrate but did not want a multi-quarter project that distracted from the roadmap.
How we shipped it.
Pick boring tech that will still run in three years
ECS on Fargate (no nodes to manage), RDS Aurora Postgres (Heroku Postgres compatible), CloudFront for static. Two regions, multi-AZ in each. Nothing exotic.
Infrastructure as code, repository in their org
Every resource Terraformed and committed to a new repo in their GitHub org. Their team contributed PRs to it during the engagement so they were comfortable with it before hand-off.
Dual-write Postgres, cut over reads then writes
Replicated Heroku Postgres to RDS via logical replication. Switched read traffic first (verified for a week), then cut writes during a maintenance window. Total customer-facing downtime: zero.
Runbook week
Week 9 was entirely hand-off: paged the on-call team through incident scenarios, walked through deploys, reviewed cost model. Their oncall ran the next four weeks without us.
AWS services in this engagement
What shipped.
Throughput doubled at the same monthly spend as their old Heroku setup. Connection ceiling no longer a bottleneck.
EU data residency contract closed in week 10. The team has shipped 14 features since hand-off with no infra slowdowns.
Hardened 47 IAM roles in 11 days.
Series B fintech needed audit-ready IAM before SOC 2. We refactored every role into least-privilege Terraform modules.
PlatformCut cloud spend 38% in 6 weeks.
Multi-region platform was burning compute. We re-sized the fleet, moved to Graviton, and added a savings plan model that paid back in 21 days.
SecurityClosed 12 audit findings before pen-test.
Health-tech client needed to ship the audit. We instrumented CloudTrail, tightened S3, and resolved every critical inside two sprints.
Tell us what you're trying to ship.
A 30-minute scoping call with the engineers who would do the work.