IDEAS IN WRITING
Blog.
Lessons, reflections and notes on development.
October 26, 2026
Reverse-engineering a UPS: from a Debian package to Home Assistant
How a proprietary Ragtech UPS monitor became an open project with a documented protocol, CLI and NUT integration.
October 20, 2026
From stack trace to pull request: the fix loop with an AI agent
How I expose production errors as JSON for an AI agent (and still keep a human approving the PR).
September 20, 2026
Backup does not mean Disaster Recovery
Having backups is not the same as having Disaster Recovery: what real restores revealed about the control plane, PersistentVolumes, OCI images, and offline recovery.
September 20, 2026
The problem of consistent backups in Kubernetes
How independent control-plane and PV backups became recovery sets with exact identity and a measured 64-second consistency window.
September 20, 2026
Measuring Disaster Recovery: reducing RTO by 29.9%
How measurable rehearsals and deterministic automation reduced the observed RTO of my K3s cluster from 1h07m09s to 47m03s.
September 17, 2026
GitOps, secrets, and reproducible infrastructure
GitOps with Flux, secrets with SOPS + age, and reproducible infrastructure: how the repository became the owner of each piece of cluster state.
September 17, 2026
From a Debian server to a Kubernetes platform at home
How a Debian server became a single-node K3s cluster with Traefik, Cloudflare Tunnel, storage, and firewall — without a big-bang migration.
September 17, 2026
Real observability in a small Kubernetes cluster
Metrics, logs, and traces on a single-node cluster: the Prometheus/Loki/Tempo stack, trace_id correlation, and the real cost of observability.
August 19, 2022
Creating animated GIFs from the terminal
How to record a terminal session with asciinema and render it as an animated GIF using agg.
May 4, 2022
Using local mail as a notification tool
How to use a Linux host local mailbox to keep cron and script notifications without depending on a graphical interface.
January 21, 2022
Fast folder iteration in Python
A practical comparison of glob, iglob, os.walk, os.scandir, and pathlib for traversing large directory trees.