Cloud & DevOps Engineer
I engineer peace of mind.
Whether it's AWS or GCP, Kubernetes or Helm, Terraform or Docker — I turn multi-cloud chaos into boring, beautiful uptime, so your team ships fast and sleeps well.
Work
Featured Work
Data Platform — Centralized ETL Infrastructure
Built a shared infrastructure platform that cut ETL pipeline onboarding from days of ad-hoc work to under two hours, then migrated twelve Python data pipelines off Supabase Edge Functions onto a centralised ECS cluster with a single reusable CI/CD workflow. All credentials were eliminated from source code. Any improvement to the platform — rollback logic, alerting, updated tooling — propagates to every pipeline on the next deploy.
Multi-Account CI/CD Platform
As the sole DevOps engineer on a five-person team, I replaced a fully manual deployment process and a publicly exposed load balancer with a production-grade CI/CD platform across two isolated AWS accounts. The same Docker image — built once, promoted by Git tag — deploys to dev and production with zero manual steps, no long-lived credentials, and a private API surface enforced through API Gateway.
Supabase to AWS RDS Migration
Migrated a 20GB production PostgreSQL database from Supabase to AWS RDS with near-zero downtime — no maintenance window, no data loss, PostGIS geometry fully preserved. The core challenge was making AWS DMS work entirely within Supabase's permission model, without superuser access, under continuous live replication. Cutover was a single connection string change, approved only after three independent data integrity checks passed.
Writing
Latest Articles
Why PGOUTPUT Beats PGLOGICAL For Supabase Migrations
If you're migrating a PostgreSQL database hosted on Supabase using AWS DMS, pglogical will fail immediately — Supabase doesn't grant superuser. Here's why pgoutput is the right protocol for this setup, and exactly how to configure it.
The Zero-Edit Merge Strategy Explained
If deploying the same Docker image to dev and production requires code changes between environments, your configuration is in the wrong place. Here's the pattern I use to build once and promote the exact artifact — same SHA, same bytes — across isolated AWS accounts with no edits.
DMS Replication Slots: What Nobody Tells You
Replication slots silently accumulate WAL data until something consumes them. On managed PostgreSQL services like Supabase, an abandoned slot will eventually get dropped — taking your DMS task with it. Here's what's actually happening, and how to keep it alive.