Latest Blog Posts
Speaking Chinese with an AI agent (2026-07-21)
Using 1-click setup scripts for server management (2026-07-03)
Teaching Claude how to use NotebookLM for me (2026-06-20)
Optimising a Pokémon-playing bot in a timed feedback loop (2026-06-05)
Using spec-driven development to vibecode a music composition tool (2026-05-23)
Building a bot to play Pokémon games (2026-05-08)
How I used coding agents in March 2026 (2026-04-04)
Look for ratchets (2026-02-08)
Evolving AI agent UX (2026-01-13)
More ways to manage AI Agents (2026-01-02)
Adding an LLM hint button to Anki flashcards (2025-12-13)
Parallels between AI Agents and People Management (2025-11-24)
Analysing Anki statistics to assess language learning progress (2025-11-07)
Using Python scripts to enhance Anki for Chinese learning (2025-10-31)
RAG chatbot in 5 minutes (2025-10-17)
Setting Up a Secure VPS (2025-10-07)
Web Development for Data Scientists: Core functionality and a DevSecOps foundation (2022-11-22)
Organisational Strategy from First Principles: the OODA loop (2022-11-09)
Introduction to Web Development for Data Scientists (2022-11-02)