All Posts

A thumbnail image

Gaggiuino: adding pressure profiling to a Gaggia Classic

March 2026 — on why a €400 espresso machine can pull shots a €4000 machine can’t

The Gaggia Classic is a semi-automatic espresso machine with a straightforward design: a pump, a boiler, a solenoid valve, and a group head. It’s been in production in roughly the same form since 1991. It’s not a cheap machine, but it’s not expensive either — around €400 new, often found secondhand for less. It is, by design, simple.

A thumbnail image

Restoring a Kubernetes app isn't just kubectl apply

February 2026 — backup is easy, restore is where you find out if your backup actually works

Every infrastructure guide talks about backups. Almost none talk honestly about restores.

A thumbnail image

Ending the commit storm: validating FluxCD manifests locally before they hit the cluster

February 2026 — on the commit history that nobody wants to show their colleagues

Every GitOps practitioner has a section of their git history they’d rather not talk about.

A thumbnail image

One Postfix to route them all: self-hosted multi-tenant mail delivery

January 2026 — on getting email routing right when you have more than one domain

Most self-hosted email guides start with a single domain. Install Mailu or Mailcow, point MX at your server, done. That works well until you have multiple domains that need to receive mail, or you’re providing mail routing for several distinct tenants, or you want a single SMTP gateway that routes inbound mail to different downstream servers based on recipient domain.

A thumbnail image

119 commits in one day: what happens when AI meets GitOps without guardrails

January 2026 — a post-mortem on why your branch protections mean absolutely nothing when an AI is at the wheel


It started with a reasonable idea

I run a self-hosted Kubernetes cluster. FluxCD manages the entire thing — GitOps, reconciliation loops, the works. Git is the source of truth. It’s a clean, elegant system. You push to main, the cluster updates. Simple.

A thumbnail image

Docker as a factory: fixing broken GPU software without touching the OS

January 2026 — when a friend’s astrophotography software broke and the internet said “reinstall Ubuntu”

A friend of mine called me with a problem. She had a new machine with an RTX 5060 Ti, PixInsight installed natively, and BlurXTerminator — a GPU-accelerated AI denoising plugin for astrophotography — completely broken. The plugin requires libtensorflow 2.11 and CUDA 11.8. Ubuntu 24.04 ships with newer versions. Installing the old ones manually breaks other system libraries.