Blog
Kubernetes, GitOps, homelab, observability — and the occasional planted aquarium.

FEATURED · 2026-04-17 · DEVOPS · HOMELAB · TERRAFORM
The Ultimate Homelab: A Deep-Dive into an Automated K3s Cluster on Hetzner
A technical guide to building a secure, automated, production-ready Kubernetes cluster on Hetzner Cloud with Terraform, Ansible and Tailscale.
The Agent Doesn't Fail by Being Wrong. It Fails by Passing Your Test.
The dangerous failure mode of AI coding agents isn't hallucination - it's a correct answer to the wrong question. On minimalism vs features, agents as reviewers, and optimising the signal you show them.
zoxide: The cd Command That Learns Where You Work
zoxide replaces cd with frecency-based jumps: type a fragment, land in the right directory. How it works, how it pairs with wt worktrees, and the cold-start caveat the README won't lead with.
OpenTelemetry Profiling: The Fourth Signal, and Why It's Not Quite Ready
Profiling is OpenTelemetry's fourth signal - which function eats your CPU, at cluster scale, continuously. The data model, the eBPF two-collector setup, and an honest look at what OTTL still can't do with it.
Shaping Telemetry Before It Costs You: OTTL in the OpenTelemetry Collector
The OpenTelemetry Collector lets you enrich, redact, and cut cardinality without touching application code - using OTTL. Pipeline order, the cache trick, and the silent failure modes that make it feel broken.
pass: Your Terminal Is Already a Secrets Manager
pass is a password manager that's really just GPG plus git. Per-repo secret stores that replace .env - and an honest look at what that does and doesn't buy an AI agent.
Five Container-Image Corrections DevOps Keeps Getting Wrong
Alpine vs slim is a libc decision, not a size one. Five container-build corrections, the caveats the confident version leaves out, and my own Dockerfile audited against them.
The Shortest Stave: What Liebig's Law of the Minimum Teaches About Distributed Systems
A 19th-century plant-nutrition principle is the same idea as the bottleneck in a distributed system: one limiting factor caps the whole.
I Let an AI Re-Platform My CI Pipeline. Here's What Broke.
I handed a CI migration from GitHub Actions to Argo Workflows to an AI agent. It passed lint and left six latent bugs. This is the debugging saga.
When Your Homelab Grows Up: How SQLite Took Down My k3s Control Plane
A postmortem from my Hetzner k3s cluster: how the default SQLite/kine datastore hit a compaction death-spiral, and why I moved to embedded etcd.
Branches as Directories: wt Worktree Manager in My Daily Workflow
How I replaced git checkout with wt, a worktree manager giving every branch its own directory, with shell auto-navigation for parallel work.
Zero-Friction Terminal Sessions: sesh and tmux in My Daily Workflow
How I turned tmux into a self-organizing workspace with sesh: named sessions, auto-launched tools, and one-keystroke switching across projects.
Terminal-First GitHub: gh CLI and gh-dash in My Daily Workflow
How I replaced the GitHub web UI with gh CLI and gh-dash, a TUI dashboard putting PRs, issues and AI code review one keypress away.
KWOK: Simulate a 1000-Node Kubernetes Cluster on Your Laptop
A deep dive into KWOK (Kubernetes WithOut Kubelet): how it simulates thousands of nodes in seconds, when to use it, and how to wire it into CI.
My Note-Taking System: From Chaos to Second Brain
A guide to building a robust, scalable, and future-proof note-taking system using Obsidian, Neovim, and Markdown, optimized for thinking over time.
Unifying My Smart Home and Homelab: Bridging Home Assistant MQTT to a Kubernetes Data Platform
Integrating Home Assistant's MQTT data with EMQX, InfluxDB and Grafana on a k3d Kubernetes cluster for long-term storage and analytics.
Configuration as Code: My NixOS and macOS Setup
How I use Nix, Nix Flakes, and Home Manager to create fully reproducible and declarative configurations for my NixOS and macOS systems.
GitOps Foundation: ArgoCD and Enterprise Secrets Management
How to bootstrap a GitOps workflow with ArgoCD, Sealed Secrets and External Secrets Operator, including Azure Key Vault integration.
Podman vs Docker Desktop: Choose Your Runtime
Based on community feedback, the homelab project now supports both Podman and Docker Desktop. Here's how to choose and switch between them.
Building a Production-Grade Kubernetes Homelab on macOS: The Complete Guide
Build a portable, cloud-native Kubernetes environment on macOS with Podman and k3d: NFS storage, Tailscale networking, and the architecture decisions.
The Aquarium Hobby: It's Not a Philosophy, It's a Survival Strategy (DIY Edition). 😅
The aquarium hobby as a DIY survival strategy: building HydroSense, an open-source IoT system for smart aquarium control, starting from old hardware.
Balance - the Heartbeat of a Planted Aquarium
Exploring the balance in planted aquariums, from the Redfield Ratio to modern monitoring, and what this microcosm teaches about nature and technology.
When Work and Passion Start Speaking the Same Language
A reflection on connecting DevOps and Kubernetes work with a passion for aquariums: the shared ground of monitoring, automation and stability.