Saga Holm logo

Barış sezer

Work with me

All journal notes

Backend

·

Zero-downtime Postgres migrations

How I moved a 200 GB table to a new schema without a single minute of downtime.

Ledgerly’s invoices table had grown to 200 GB, and we needed to split it. A normal ALTER TABLE would have locked writes for hours in the middle of the working day.

Instead of one big migration, I added the new columns, dual-wrote to both shapes, backfilled in small batches overnight, and only then switched reads behind a feature flag.

The switch took three weeks, and users never noticed. Now every schema change on the team follows the same expand-and-contract playbook.

Barış Sezer

Building something that needs this kind of engineering? I’d love to hear about it.

Have a project in mind?

Tell me what you’re building — I reply within two working days, no pitch and no obligation.

Based in Moscow

Local time

 

Letters

Occasional notes on new projects and what I’m learning.

© 2026 Barış Sezer

Made in Moscow