I build stuff, break stuff, automate stuff, and occasionally write funny sarcastic comments in code reviews and commit messages. Linux is my home, the JVM is where I spill coffee, sweat, and blood, Rust is my shiny new toy, and cats… well, cats rule everything.
Oh, and there are no skill bars here. I’m not going to tell you I’m “90% Java” or “85% Python”, because competence is not a download progress bar. Everyone knows the missing 15% is exception handling anyway.
By day I write Java, Groovy, and Kotlin on Spring Boot and Micronaut, paying the bills one @Autowired at a time. When the workday ends the JVM gets tucked in, and ZSH and Python come out to play, scripting anything that sits still long enough to be automated, up to and including the coffee machine. The newest arrival in the toolbox is Rust, and while the borrow checker and I are still in couples therapy, the therapist says we're making real progress.
All of this happens on Linux, and always has. I started back in the Slackware days, when “dependency resolution” meant staring at the terminal and grepping install logs until something confessed. These days I ride CachyOS, with a homelab humming away in the corner, self-hosting way too many things because it's cheaper than the cloud, right? (narrator: it was not)
Some toys I’ve been tinkering with, neatly organized into sections so it looks like there was a plan. There was no plan.
Where uptime is a suggestion and every service is exactly one YAML indent away from disaster.
| Project | What it does |
|---|---|
compose |
A magical box of Docker compose files, configs, and scripts to wrangle my self-hosted chaos. 10% infrastructure, 90% coping mechanism. |
compose-utils |
In the grim darkness of my homelab, there is only docker compose up. Startup dependencies were pure Chaos, so I unleashed systemd upon them like the Emperor's finest. Heresy purged, machine spirit appeased. |
docker-conf |
Custom docker config and CLI plugins, because the default docker CLI output is total ass and someone had to say it. |
Paying per token is scary, but buying GPUs is an investment. Meanwhile I yearn for the RTX Pro 6000 Blackwell the way medieval peasants yearned for the sea: from a great distance, knowing I’ll probably die without ever touching one.
| Project | What it does |
|---|---|
the-bannered-mare |
“What if we rebuild SillyTavern on a modern stack, how hard could it be?” Turns out building the tavern is way harder than getting drunk in it. I used to be an adventurer like you, then I took a rewrite to the knee. |
tei-proxy |
Lightweight proxy that teaches Open WebUI's reranker to speak fluent Hugging Face TEI. |
ik_llama.cpp-docker |
Zen 5 optimized ik_llama.cpp builds, squeezing tokens out of a CPU that never consented to any of this. |
sd-webui-forge-docker |
Stable Diffusion WebUI Forge in a Docker box. Infinite cat pictures, finite VRAM. |
- 🎮 CRPG & Sci-Fi junkie. I read every lore book, hoard every potion “for the final boss,” then beat the final boss without using a single one
- 🛒 My Steam backlog technically qualifies as a retirement plan. I keep contributing every sale and plan to start withdrawing sometime in my sixties
- 🐱 Dedicated servant to our glorious feline overlords. There’s a cat on my keyboard right now, which explains at least three of my commits
- 🤘 I'm a huge metal fan but I also really love Ghost
- 🕳️ Obsidian.md is an endless rabbit hole. I spend more time perfecting my note-taking system than actually taking notes, and somewhere in the vault there’s a note about that



