Beyond “Works on My Machine”: A Practical Journey into Reproducible Dev / DevOps Environments

This post is my reflection on rebuilding my development environment around reproducibility after taking the “Dev Containers, Neovim & Config Management” course from KubeCraft. Instead of yet another fragile laptop setup, I now treat the dev environment like real infrastructure: defined in devcontainer.json, recreated via Dev Containers and DevPod, and verified instead of assumed. That mindset directly tackles the “works on my machine” problem, especially in Kubernetes work where teams need consistent kubectl, helm, and cloud CLI versions across all engineers.

I also describe how I started managing my dotfiles as personal infrastructure using Chezmoi and how Mise gives me a structured way to pin tool versions per project without polluting the whole system. Together, these tools form a pipeline where containers start, dotfiles apply, trusted tools install, and I land in a predictable environment—whether on my laptop, in an ephemeral workspace, or on a remote admin node.

With roughly three decades of Linux and infrastructure experience, my goal here is not to show off a fancy shell, but to move from artisanal one-off setups toward explicit, reproducible engineering systems that a whole DevOps/Kubernetes team can rely on.

Learning Modern Networking: From IP Basics To Spine‑Leaf Fabrics With containerlab

I just finished a deeply hands-on networking course that took me from basic IP fundamentals all the way to building a BGP‑driven spine‑leaf fabric with containerlab and Nokia SR Linux. What started as “let’s recall how IP and routing work” ended with me automating data‑center‑style topologies and understanding why this architecture is the de‑facto standard … Read more

Leveling up my Kubernetes fundamentals in the homelab

Over the last weekend I worked through a hands‑on Kubernetes fundamentals module and rebuilt everything in my own homelab, from simple pods all the way to Helm‑based monitoring with the kube‑prometheus‑stack. The goal was not just to “get it running”, but to really understand how the core building blocks of a Kubernetes platform fit together … Read more

A Small Tool for Searching Large Databases During Troubleshooting

When you work close to complex application data, you eventually run into one of those situations: something is clearly wrong, but the underlying structure is only partly familiar. You know the bug is somewhere in the library, somewhere in the database, somewhere behind a layer of abstractions — but finding the right object quickly is … Read more

From Hybrid Playground to Headless Homelab Server – Cleaning up a Proxmox Install on Debian

Proxmox VE, built on Debian, may suffer from package bloat when used with desktop environments and productivity tools. To revert to a pure Proxmox hypervisor, users should back up configurations, purge unnecessary applications like LibreOffice and KDE, clean up configuration remnants, and autoremove orphaned dependencies, ensuring Proxmox remains intact.

How a 2005 Shell Script Made Secure Home Directory Mounts for Shared POS Systems Possible

In retail environments, especially in the mid-2000s, shared Windows terminals were a staple of day-to-day operations. At an auto parts store, four shared point-of-sale PCs were used by rotating sales staff—all logged in with a general Windows account for simplicity. However, employees sometimes needed access to their own private home directories from these shared systems. … Read more

How a 2010 Shell Script Keeps the Music Playing on Your PBX

Back in 2010, telephony systems often required a practical solution for delivering music on hold. Professional hardware and software components could be costly or inflexible, but for those comfortable with Linux, simple shell scripts offered an adaptable alternative. The following blog post explores a classic Bash script that continuously feeds a telephone system with MP3 … Read more