Blog

Thoughts on DevOps, cloud architecture, and software engineering.

Why PGOUTPUT Beats PGLOGICAL For Supabase Migrations
· 4 min read

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.

DevOps Cloud AWS
The Zero-Edit Merge Strategy Explained
· 5 min read

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.

DevOps Cloud AWS Terraform
DMS Replication Slots: What Nobody Tells You
· 5 min read

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.

DevOps Cloud AWS
How I Debugged API Gateway 403s in Production
· 6 min read

How I Debugged API Gateway 403s in Production

API Gateway 403s are frustrating because they look identical regardless of cause — and there are at least four distinct places they can originate. Here's the diagnostic framework I use, and the two specific issues that caught me during a production setup.

DevOps Cloud AWS
Why I Put the CI/CD in the Infrastructure Repo
· 5 min read

Why I Put the CI/CD in the Infrastructure Repo

When every application repo owns its own CI/CD workflow, you end up with N copies that can never all be updated at once. Putting the deployment logic in the infrastructure repo gives you a single source of truth — and means fixing a bug in the pipeline fixes it everywhere simultaneously.

DevOps Cloud AWS Terraform
Building a Terraform Module That Teams Actually Reuse
· 6 min read

Building a Terraform Module That Teams Actually Reuse

Most Terraform modules don't get reused — they get copied, modified, and eventually forked into something unrecognisable. Here's the interface design principles that made a module actually stick across 12 production pipelines.

DevOps Cloud AWS Terraform