I’m Johannes. By day I work in education; by night (and most weekends) I run a small homelab, tinker with Mac and Linux setups, and experiment with local AI tools.

Somewhere along the way I became the kind of person who runs a Proxmox host in a closet. What started as curiosity about how a home network actually works turned into a small fleet of machines stitched together with Tailscale, all doing jobs they were never originally sold to do. My daily driver is a Mac, and I’ve made my peace with the fact that the terminal still calls it by the wrong name because I never bothered fixing an old hostname typo. Homebrew is where most of my setup lives — the whole rhythm of brew install and brew bundle that makes a fresh machine feel like home again. I split my time between macOS and Linux and like understanding the seams between them: what translates cleanly, and what breaks in interesting ways.

I also run language models locally. Some of that works beautifully. Some of it is an expensive way to make a laptop warm. I’ll write about both, along with the shell scripts and small tools I build to glue it all together.

This blog is where I write down what I learn — Homebrew setups, self-hosted services, shell scripts, and the occasional local LLM experiment that either worked great or taught me something the hard way.

If something here saves you an evening, that’s the whole idea. If I’ve gotten something wrong, tell me — I’d rather be corrected than confident.