Project ·
The Amiga 40th exhibit
A walk-through history of the Amiga, built for its 40th anniversary at the Vintage Computer Festival at the Computer History Museum, with the Amies awards in the evening.
Principal engineer. I build software, objects, and the occasional retro machine — and write up what I learn.
I am a principal engineer working on enterprise content platforms, search, and applied AI. Away from work I make things — in wood, metal, plastic, and silicon — and keep a few old computers running. This site is where I share what I build and what I learn along the way.
Project ·
A walk-through history of the Amiga, built for its 40th anniversary at the Vintage Computer Festival at the Computer History Museum, with the Amies awards in the evening.
Project ·
A modern development kit for the 1993 3DO Interactive Multiplayer: the original-style Norcroft toolchain in Docker, a patched Opera emulator with a GDB server and remote-control API, and MCP tools for Claude Code.
Project ·
A multi-project Claude Code orchestrator for macOS: it tracks the backlog of every project I work in and hands the next task to the right Claude session.
Project ·
A macOS menu-bar app that turns documents into PDF, plain text, spoken audio, and AI summaries through a pluggable pipeline — and can publish the results to Books, Music, Reading List, Obsidian, or Notion.
Project ·
A low-latency pub/sub service: back-end services publish state changes, and clients subscribe over WebSocket or long-poll to receive events plus a server-maintained snapshot of each object.
Project ·
A TOGAF-inspired "city map" editor for enterprise architecture — districts, neighbourhoods, buildings, and rooms on a pan-and-zoom canvas, editable by people and by AI through REST and MCP.
Project ·
A native analyzer for Claude Code session logs: it ingests every session into SQLite and shows how much reading, searching, and sub-agent work happened before code was written.
Project ·
Original games, demos, and test programs for classic AmigaOS and AmigaOS 4.1, built and debugged with Amiga DevBench.
Project ·
A multi-language code analysis platform that turns repositories into a searchable graph of classes, functions, calls, and dependencies — with a REST API, a web UI, and an MCP server for AI assistants.
Project ·
A cross-development environment that connects a modern machine to an emulated or real Amiga over serial — live debugging, memory inspection, remote execution, and MCP tools so Claude Code can build and drive Amiga software.
Project ·
A horizontally scalable web crawler in Java: Kafka distributes URLs across crawler processes, Cassandra keeps the metadata, and S3 or MinIO stores the content.
Article ·
Figures, spacecraft and retro machines I have made as 3-D models with Meshy.ai and prepared for printing — mostly people as Lemmings, Amiga history and 1980s TV. This page grows as I add models.
Article ·
The administration is starting a new military force, so I designed the one I'd expect: the AI Force — a squad of very typical geeks in hero suits, with a nod to Atari Force from the 1980s comics.
Article ·
I'm a big fan of the alien genre, so I wanted some funny aliens in my house: greys drinking coffee, on the phone, and doing see-no-evil — modelled in Meshy, printed, and hand painted.
Article ·
Space: 1999 was a show I loved watching as a kid, so two of my 3-D models are from it: an Eagle Transporter and a Moonbase Alpha astronaut.
Article ·
The engine behind this site — a Rust static-site generator with a CLI, REST API, MCP server, and desktop app — is now on GitHub under the MIT licence.
Article ·
How I built AOEE, an in-memory relationship cache for social-graph queries: posting lists borrowed from search engines, four adaptive encodings, set maths instead of joins, and friend-of-friend suggestions with a budget.
Project ·
The app that builds and publishes this site — a Rust core with a CLI, a REST API, an MCP server for AI assistants, and a desktop app.
Project ·
Metadata-driven incremental replication from PostgreSQL into Apache Iceberg — the database counterpart to my structured-logger project.
Project ·
My friends from the Amiga community, reimagined as Lemmings — designed with Meshy AI from photos, printed in PLA on Bambu printers, and finished with felt-tip pens and UV resin. Plus a few guesses at what Lemmings would be up to now.
Project ·
A Java library that finds the people, organisations, places, and products in text and works out the sentiment expressed toward each — and who holds it — using a layered ONNX model pipeline.
Project ·
An outbound event-delivery platform: it consumes internal events from Kafka, matches them to subscribers, translates them to CloudEvents, and delivers them as signed webhook batches or WebSocket streams.
Project ·
A full-featured social network — feeds, profiles, friends, groups, pages, messages, search, and an admin dashboard — built on Spring Boot, React, PostgreSQL, OpenSearch, and my Rust graph cache.
Exploration ·
Start with one transistor switching an LED, wire switches into gates, gates into an adder, feedback into memory, and memory plus a clock into a tiny CPU — then watch a real 6502 run a program you can read byte by byte.
Exploration ·
From magnets and coils to a quadcopter in the air: how a brushless motor is wound, how an ESC switches it in six steps, how it finds the rotor without sensors, what field-oriented control does better, and what happens when you bolt four of them to a frame — with the simulators running alongside.
Exploration ·
Pull the plug on a database halfway through a write and it comes back with every committed transaction and none of the half-finished ones. How? Follow a write through the log, the buffer pool and the disk, compare B+trees with LSM-trees, watch compaction, and then see the other half of the promise — what concurrent transactions are allowed to see — with real PostgreSQL and SQLite running between the paragraphs.