things I have built

Work

These are systems I depend on, not isolated demonstrations. Below them, the things built to learn something, and a few kept purely for the record. The professional work is on the resume.

Systems I runthe current work

Tools I depend on daily rather than demonstrations. Documents arrive, get classified and extracted, get checked against something that is not a language model, and end up queryable. Repositories are private for now; the writing here is about the approach.

  • 2026 — ongoing

    bills

    Property bills land in a folder; a command turns them into a queryable record with the arithmetic checked, the files filed and the reminders set.

    Private repository

    • Python
    • SQLite
    • Claude vision
    • macOS automation
  • 2026 — ongoing

    hum

    An always-on visibility layer across the whole fleet of automation tools, so a system that works unattended can still be seen working.

    Private repository

    • TypeScript
    • React
    • Ink
    • WebSockets
    • LaunchAgent
  • 2026 — ongoing

    Cattle

    A publishing engine that turns one long-form essay into versions for different audiences — children, teenagers, academics — and ships each as its own site.

    Private repository

    • TypeScript
    • LLM transformation
    • Astro
    • SQLite
    • Vercel
  • 2026 — ongoing

    Herd

    A retrieval system for writing sessions that run for hours, so the conversation stops forgetting what the essay says.

    Private repository

    • TypeScript
    • RAG
    • semantic retrieval
    • SQLite
  • 2026 — ongoing

    shopping-receipts

    Receipts arrive by scanner, email and export; they come out the other side as structured, categorised, queryable records.

    Private repository

    • TypeScript
    • NestJS
    • React
    • SQLite
    • Claude vision
  • 2026 — ongoing

    petrol-receipts

    The reference implementation for the whole fleet — fuel receipts in, structured per-vehicle records out.

    Private repository

    • TypeScript
    • SQLite
    • Claude tool-use
    • OCR
  • 2026 — ongoing

    tax

    The same ingest-and-reconcile treatment applied to the documents that only matter once a year, and only if you can find them.

    Private repository

    • Python
    • SQLite
    • structured extraction
  • 2026 — ongoing

    email triage

    Agents that read an inbox the way I would, so the things needing a decision surface and the rest files itself.

    Private repository

    • Python
    • IMAP
    • LLM agents
  • 2026 — ongoing

    goc

    A small navigator for a machine with too many projects on it — jump to any of them, and pick the conversation back up where it stopped.

    Private repository

    • Python
    • shell integration
  • 2025

    SRDD

    Spec-Roundtrip Driven Development — a methodology for AI-assisted engineering where the specification is the artefact.

    • Methodology
    • Technical writing

Have a goplayable here

  • 2017 — 2024

    Sudoku

    A Sudoku board that works out which values are still legal for every empty square, playable right here.

    Playable

    • React
    • TypeScript
    • Vite

Along the waykept for the record

  • 2024 — ongoing

    Small Language Model

    A DistilGPT-2 fine-tuned on a decade of personal journals, to see what a small model learns from one voice.

    • PyTorch
    • Hugging Face
    • scikit-learn
    • Jupyter
  • 2024

    Choose-APY

    A choose-your-own-adventure storyteller for children, with the branches generated as you read.

    • LLM APIs
    • React
    • Vercel
  • 2013

    Sudoku Solver

    A desktop Sudoku solver in Java and SWT, solving by recursive backtracking.

    • Java
    • Eclipse SWT
  • 2013

    FXMandelbrot

    A JavaFX renderer for the Mandelbrot set, written to learn the then-new JavaFX scene graph.

    • Java
    • JavaFX
  • 2013 — 2017

    Samples along the way

    Smaller projects kept for the record — a first React-Redux app, an AngularJS stock tracker, JavaEE and JavaFX experiments.

    • React
    • Redux
    • AngularJS
    • JavaEE
    • JavaFX