SaaS Platform Arch
ClickOps + slow environments blocking ship → 99.9% availability, 40% AWS cut, envs in minutes.
- Role
- Lead Platform Engineer
- Context
- Developer Tools SaaS
- Duration
- 6 months
- Team
- 3 engineers + 1 architect (me)
Tech stack
- Python
- Lambda
- API Gateway
- DynamoDB
- Celery
- Terraform
- React
- Docker
- Kubernetes
Business problem and production context.
Business problem
The platform needed to scale from pilot to production-grade with minimal operational overhead. Build operations were slow, monitoring was non-existent, and infrastructure was manually provisioned, slowing feature delivery to a crawl.
Architecture decision
Designed a fully serverless architecture using Python, Lambda, API Gateway, and DynamoDB. Implemented Celery-based task queues with SQS for async build operations and deployment coordination. Built React/TypeScript dashboards for real-time system monitoring.
The useful proof is the decision surface, not only the result number.
These are the parts of the work that show production judgment: ownership, constraints, rollback, cost, and observability.
Owned scope
- Platform foundation for repeatable environments, IaC, deployment paths, and operational ownership
- Cost and reliability review for a SaaS product moving from pilot shape toward production scale
- Developer workflow improvements so environments could be created and changed predictably
Evidence artifacts
What would fail first?
Every project has constraints. The useful work is naming them early enough that rollback, cost, and ownership are designed before an incident.
ClickOps drift
Manual infrastructure changes made environments slow to create and hard to compare.
Small team
The platform had to reduce operational load instead of adding process overhead.
Growth pressure
Pilot decisions needed to become repeatable before more tenants and features arrived.
Trade-offs accepted on purpose.
Production risks and how they were controlled.
Small steps, visible changes, fewer surprises.
- 01
Mapped the existing manual infrastructure and documented 23 hand-provisioned resources across 3 AWS accounts with no IaC.
- 02
Designed API-first architecture. Lambda handlers for all CRUD operations behind API Gateway with request validation and throttling.
- 03
Built async build pipeline using Celery workers on ECS, SQS for job queuing, and S3 for artifact storage with lifecycle policies.
- 04
Implemented DynamoDB single-table design with GSIs for multi-tenant access patterns, eliminating the need for a separate database per customer.
- 05
Created Terraform modules for the full stack, enabling one-command environment provisioning for dev/staging/prod.
Before and after.
Rollback path
Rollback needed to be tied to deployment workflow, state changes, and environment promotion instead of manual memory.
Cost considerations
The primary savings path was right-sizing and removing manually-created resources that had no owner.
Observability notes
Environment health, deploy success, core API latency, and tenant-impact signals were the important baseline.
Related services
Have a similar production problem?
Send the current architecture, bill concern, deployment pain, or GenAI reliability issue. I will help you find the first real bottleneck.
Request the reliability audit