Blog
Longer-form writing and essays
- · 6 min
Execution Stopped Being the Bottleneck
A friend warned me that parallel coding agents would blow the bank. So I ran the same five tickets through two different agent harnesses on the same subscription and let the ledger decide. The cost story dissolved on contact. What it revealed instead is that the constraint has moved somewhere more interesting.
- · 5 min
Your Architecture Is the Bottleneck, Not the Model
A month of running parallel coding agents, with a ledger recording every run, says the constraint on agentic development isn't model quality. It's whether your codebase can be decomposed at all.
- · 6 min
Indexatron Update: Context-Aware Analysis with Local Vision Models
How injecting domain knowledge into prompts transformed a generic image classifier into something that understands your specific photo archive
- · 6 min
Maintaining Open Source in the AI Era
Reflections on building and maintaining Ruby and Python packages, how AI has changed the process, and why I'm not entirely sure it's for the better
- · 5 min
Indexatron: Teaching Local LLMs to See Family Photos
An experiment using Ollama with LLaVA and nomic-embed-text to analyse family photos locally - proving that privacy-preserving AI photo analysis actually works
- · 7 min
Building Swanson: A RAG-Enhanced Recommendation System for whatisonthe.tv
How I built a context-aware recommendation system using Claude, Server-Sent Events, and viewing history to suggest TV shows and films
- · 7 min
Working with Claude: A Senior Developer's Honest Take
After months of integrating AI into my development workflow, here's what actually works and why planning mode, skills, and tasks have been game changers
- · 3 min
Automating Activity Feeds with GitHub Actions and Gists
How I set up automated Spotify and GitHub activity feeds for my personal site using GitHub Actions and Gists
- · 3 min
Adding OAuth to the Authentication Service
Extending the authentication microservice with OAuth 2.0 support for Keycloak and Google, evaluating FastAPI libraries, and why I chose aioauth
- · 8 min
Extracting Authentication to a Microservice
Lessons from extracting authentication and authorisation into a dedicated microservice, including database migration, in-memory testing, and architectural decisions
- · 2 min
Building a Personal Site with Astro
Why I chose Astro for my personal website and what I learned in the process