What I'd do differently: a retrospective on Foreman

What’s over-engineered, what I cut corners on, and the one thing I’d change if I started over.

April 2026 · 7 min · GitHub

Goroutines, channels, and graceful death

Building a bounded worker pool with priority Kafka dispatch and clean SIGTERM shutdown — no work abandoned, no offsets lost.

March 2026 · 8 min · GitHub

Exactly-once is a lie, but the outbox pattern gets close

Why you can’t atomically write to Postgres and Kafka, and how the outbox pattern with idempotent consumers gets you exactly-once semantics.

March 2026 · 6 min · GitHub

Drawing lines: how I carved Foreman into services

Why three binaries instead of one, Postgres as source of truth, and the transactional outbox seam between Postgres and Kafka.

March 2026 · 8 min · GitHub

Foreman: why I built a distributed job queue from scratch

The motivation and stack choices behind building a self-scaling distributed job queue from scratch.

March 2026 · 6 min · GitHub

Building Google’s Maglev Hashing in Go: A Weekend Deep Dive

An implementation of Google’s Maglev consistent hashing in Go, using fixed-size lookup to solve the “thundering herd” problem.

February 2026 · 4 min · GitHub

Orchestrating Containers from Scratch

A deep dive into systems engineering: how to build an elastic task engine using Go, Redis, and the Docker SDK, featuring custom autoscaling, scale-to-zero logic, and synchronous log streaming.

October 2025 · 4 min · GitHub