Writing
Notes on building and breaking.
Longer-form writing about the things I actually work on: resilient backends, security that survives contact with a deadline, and whatever the homelab is doing this month.
All posts
7 postsHerdr and the overnight homelab
Coding agents are useful right up until you close your laptop. Here's how I gave mine somewhere to live, and the guardrails I put around them first.
Replacing Clockify with 200 lines of Elixir and a SQLite file
A self-hosted Clockify replacement in Elixir and SQLite — and why the single-running-timer rule lives in the database, not the application.
I argued against embeddings. Then I ran them on my own hardware.
I replaced trigram matching with semantic search using Bumblebee, Nx and pgvector. My objection was never to embeddings — it was to the API key.
I built a tool because I was the questionnaire guy
Vendor questionnaires ask the same questions in different words. The Phoenix app I built to stop retyping answers, and why it began with trigrams.
The R710 years: what a secondhand 2U server taught me
Decommissioned enterprise gear is the cheapest homelab education available and the most expensive to keep running. Six lessons from a Dell R710.
Dotfiles, GNU stow, and the three lines that matter
My config lives in a git repo symlinked into place with GNU stow. The setup is boring on purpose — but three lines in it have saved me hours.
A $6 sensor, and knowing what your environment is actually doing
A Raspberry Pi, a DHT22, InfluxDB and Grafana — and what a humidity monitor taught me about writing long-running processes that stay running.