All Posts

Wie Is Wie: Watching Two AIs Debug a Network I Broke on Purpose

April 2026 — on breaking things on purpose to see how AI debugs them

There is a children’s game in the Netherlands called Wie is Wie — the Dutch version of Guess Who. You sit across from your opponent with a board of cartoon faces. You take turns asking yes/no questions. The goal is not to gather information in every possible category. The goal is to flip over as many faces as possible with a single question.

Meten is Weten: How Installing Plausible on My Hugo Blog Led to a Three-Node BGP ECMP Varnish DaemonSet

It started with a single, innocent question: does anyone actually read this?

I’d been running this Hugo blog for a while, writing posts about the homelab, the cluster, the occasionally catastrophic self-inflicted incidents. At some point the thought surfaced that it would be nice to know whether the words were reaching anyone beyond me and the search indexer. So I installed Plausible — privacy-respecting analytics, no cookies, one config line in Hugo — and moved on.

The NPU Nobody Talks To: Mapping the CIX P1's Hidden AI Engine

The Orange Pi 6 Plus sits in the rack, humming along with the quiet confidence of a board that knows it is being underutilised. Inside the CIX P1 SoC is a dedicated Neural Processing Unit (NPU)—a piece of silicon specifically etched to crunch tensors and accelerate inference. The hardware is real, the chip is powered, and the transistors are awake. But in the world of the Linux kernel, it is a ghost. There is no driver to wake it up, no sysfs entry to query it, and no user-space API to feed it data. It is a high-performance engine idling in a vacuum; the chip is awake, but nobody’s home.

700ms to 2ms: What a Cluster Fire Taught Me About Embedding

700ms. That was the number that haunted my Kubernetes cluster, slowly burning it to the ground. Every alert the cluster generated, every log line it processed for AI-driven feedback, triggered an embedding operation. Each of these embeddings, we thought, took 700ms, saturating a CPU core, which in turn triggered more alerts, creating a truly spectacular, self-immolating feedback loop. The load average climbed to 153. It was a cluster fire, quite literally. Then, in the chaotic aftermath of patching the inferno and moving that “expensive” embedding workload to a humble 15-watt ARM board, something remarkable emerged: the warm latency was a mere 2ms. Even a cold start, including model loading, clocked in at around 100ms. The sobering discovery? The 700ms was never about the embedding operation itself. It was the embedding struggling under full CPU saturation, choked for headroom. On a quiet, dedicated machine with a warm model, the exact same task takes 2 milliseconds.

The home network shelf: MikroTik, TP-Link, and a 10-inch rack that fits in a cupboard

April 2023 — on making the network visible, organised, and not an embarrassment

Every home network starts the same way: a router from the ISP, a switch from a supermarket, a tangle of cables behind the television. It works. It’s not organised. It grows by accretion. At some point it becomes something you hide rather than show, and you stop understanding what’s actually connected to what.

Building a quiet NAS: the part nobody writes about is the vibration

February 2021 — on the noise that comes from spinning rust and how to stop it from travelling

Every NAS build guide covers the same things: which board, which drives, which OS, how many watts. They cover RAID levels, ZFS recordsizes, network throughput. They benchmark transfer speeds and idle power.