Selected work

A handful of projects worth talking about. Names changed where confidentiality applies.

Cutting tail latency on a Postgres-backed feed

Logistics platform · Q3 2025

The order-events feed served roughly 6 million writes a day and was struggling at the p99 — pushing 800 ms during peak. The root cause turned out to be a poorly chosen partial index combined with bloated TOAST storage. We rebuilt the indexes during a maintenance window, introduced a write-coalescing layer in Go, and walked p99 down to 80 ms.

Read the writeup

A small Go pattern for batch processing

Internal tooling · 2025

An approach for processing batches of records concurrently while keeping back-pressure clean and errors traceable. Borrowed heavily from x/sync/errgroup with a few additions that came from real production pain.

Read the notes

Why we moved metrics off CloudWatch

Payments team · 2024

CloudWatch was costing us roughly €4k a month for metrics our SRE team rarely used, and the on-call dashboard took 12 seconds to load. We migrated to a self-hosted VictoriaMetrics cluster on three small instances. The dashboard now loads in under a second. Some context on the tradeoffs, including the things that aren't better.

Read the retrospective