Writing
Blog
2026
- Three types of AI PractitionerDefining clear AI practices
- Spotify Play HistoryOvercoming the 50 song limit on Spotify play history
- Windows Window ManagerNotes on getting started with komorebi - a tiling window manager
- Lightweight data analysis on a shoestringHow to build a reproducible data analysis pipeline from scratch, using only local tools and version control such as SQLite, DuckDB, Python and Git.
- Exploring an LLM Judge and human-in-the-loop patternsBuilding better quality text output with no-cost judges
- Structured output and the thinking budget trade-offWhy you can't always have structured output and extended thinking at the same time, and what to do about it.
- Website infrastructure improvementsMigrated to Cloudflare Pages for an easier life
- When OpenBSD's virtio Driver Says 'No Carrier': A Deep Dive into MSI-X, VLAN Tags, and Driver BugsDebugging why OpenBSD VMs on Proxmox show permanent 'no carrier' on VLAN-tagged virtio interfaces, and what I learned about interrupt handling along the way
2024
- Some notes on how my website worksDocumenting current and future website setup
- Kubernetes install guides need updatingWhen unmaintained recipes need updates due to deprecation
- Astro wouldn't startWhen running Astro on Linux, I couldn't get it to start. Here is how I fixed that
- Setting up my blogsome notes on setting up my blog
2016