Featured · Internal Tools · UX

Designing an admin panel that engineers do not hate

Internal tools tend to rot the moment they leave the founding team. We rebuilt our admin from scratch around three principles: every action should be auditable, nothing should require a tribal-knowledge runbook, and there should be exactly one button that resolves the on-call page.

MMei Watanabe·May 31, 2026·8 min read

Latest writing

DatabasesOperations

A practical guide to writing migrations you can actually run on Friday

Most database migrations fail not because the SQL is wrong but because nobody tested them against a realistic dataset. We share the rollout checklist we use for every schema change, including the awkward question of when to lock a table and when to live with the inconsistency.

SSam Lee·Mar 30, 2026·11 min read
PostgresKubernetes

Notes on running Postgres on Kubernetes in 2026

Five years ago this would have been a controversial post. Today we have battle-tested operators, decent storage classes and a community that has finally agreed on backup tooling. Here is the stack we landed on for a fleet of around forty clusters.

HHassan Idris·May 5, 2026·10 min read
Distributed SystemsPostmortem

Why we replaced our message queue (and what we learned)

After two years of running a custom message broker we finally pulled the plug and migrated everything to NATS JetStream. The migration took six weeks of careful planning, three weekends of late-night cutovers and one production incident that we are still apologising for.

AAlex Chen·May 28, 2026·9 min read
Engineering Culture

Feature flags are not a substitute for testing

Every team eventually discovers the joy of shipping behind a flag. Fewer teams discover the misery of cleaning up flags two years later when the original author has long since left the company. A short rant and a longer guide.

PPriya Raman·Mar 28, 2026·5 min read