All Posts
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.
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 AI That Monitored Your Cluster Just Brought It Down
April 2026 — on the sentinel that decided to burn the house down
“Why can’t I see the new photos?”
That’s how the outage started. Not with a PagerDuty alert or a Grafana dashboard turning red, but with a casual question from my wife. I was already deep in the weeds debugging a glitch in Nextcloud Talk, but as I tried to refresh my own dashboard, the latency didn’t just spike—it vanished. Immich was gone. Mail was gone. The search index was a black hole.
€200 Claude.ai bill in one week — so I built a cheaper alternative
April 2026 — one week of intensive AI-assisted work, one surprising bill, and one decision to do something about it
The Claude.ai usage screen showed €169.51 spent in a single week. That number included €23 for a Pro subscription and four separate top-ups of €50 each in “extra usage.” One hundred and sixty-nine euros. In seven days. On a chat interface.
Zero to observability in a Java app: OpenTelemetry agent, Prometheus, and Grafana Tempo
September 2025 — adding real observability to a Java service without touching a line of application code
Logs tell you something happened. Metrics tell you how often. Traces tell you exactly what happened, in what order, for how long, across which services.
Your IoT sensors deserve proper observability: MQTT to Prometheus with a Helm chart
May 2024 — because your home produces data worth keeping
Smart home devices generate a constant stream of data. Temperature readings, power consumption, motion events, CO₂ levels, humidity. Most of it disappears into a cloud service or gets forgotten after being displayed on a dashboard for a few seconds.