Recent Posts
A chronological view of all content across the site - see how often I write and what’s new.
April 2026
How I built a Kyverno-injected sidecar to back up and restore PVCs to S3 during blue/green cluster reinstalls, and why I eventually replaced it with VolSync.
How a YouTube video made me realize my custom backup tool was a reinvented wheel, and the migration to VolSync that followed.
I built a 2,400-line bash backup tool for Kubernetes before realizing a well-maintained open-source operator already existed. Not a total loss, but a lesson in doing your research first.
A growing log of upstream OSS contributions I made with Claude Code that I could not have made without it
Left for KubeCon Amsterdam 2026, power went out at home, and a cascade of failures left my wife without WiFi, water, or any way to fix it
March 2026
Lessons from attending every European KubeCon since 2023, plus practical tips for first-timers and veterans alike
Making Prometheus AlertManager Slack alerts readable on Apple Watch and macOS instead of raw label dumps
Controlling Arc Browser from Claude Code using the Chrome DevTools Protocol MCP server
A Rust CLI proxy that filters noisy tool output before it hits the context window, saving 60-90% of wasted tokens
How I migrated 191 scattered permission rules to a single, readable config with guidance messages
From the Kubernetes Resource Model to Crossplane compositions, how I build platform abstractions that let developers self-service without waiting on ops
Using k8s-cleaner to detect unused ConfigMaps, Secrets, PVCs, non-GitOps deployments, and orphaned CNPG resources with Lua-based scan policies
Understanding the three ways to extend AI coding agents: slash commands, MCP servers, and skills
February 2026
Forking Anthropic's Claude Code GitHub Action to work on Forgejo, the adapter pattern, and keeping it synced with upstream
A two-line status bar for Claude Code with per-session colors, session topics, context/quota bars, and Kubernetes context
How replacing Crossplane KCL compositions with custom Go functions slashed CPU usage by 800x and memory by 31x — a lesson learned the hard way
Migrating Crossplane compositions from KCL to custom Go functions for dramatically better resource usage
The kubectl plugin manager that turns your CLI into a Swiss Army knife. Here are the plugins I use daily to manage Kubernetes clusters.
How I use CLAUDE.md files to give Claude Code persistent project context and instructions
A local-first Kubernetes visibility tool that runs on your laptop, supports all your contexts, and doesn't need to live on your cluster
Set up a dedicated Tailscale LXC container as a subnet router and exit node on Proxmox VE
January 2026
Migrating from ArgoCD to Flux — the why, the how, and what I learned
Model Context Protocol — the open standard that lets AI assistants use external tools and data
Why RSS is still the best way to consume content in 2026, and how I use FreshRSS + Fiery Feeds to escape algorithmic feeds
Viktor Farcic's AI-powered Kubernetes operations tool — what it does and how I use it for custom prompts
Using VPA to automatically right-size memory requests based on actual usage
Hard-won lessons from months of AI-assisted development
Blogs, newsletters, and creators worth following
Using Kubernetes PriorityClasses to control pod scheduling and eviction during resource pressure
Individual pieces worth bookmarking
Quick one-liner prompts for AI conversations
Custom AI prompts that encode domain expertise for Kubernetes, CI/CD, and infrastructure tasks
A detailed look at the homelab infrastructure — hardware, software, and services
How I built a zero-maintenance blog using Hugo, Forgejo CI, and GitHub Pages
Why GitOps-synced manifests with automated CI beat OCI package distribution for Crossplane compositions and functions