Projects
Things I've built — side projects, open source, and experiments.
Personal Site
My personal technical website — built with Next.js, Turborepo, and MDX.
Distributed Java Logger (1999)
A custom logging framework built before Log4j — async log dispatch, rolling file appenders, and a UDP log collector for aggregating logs from multiple JVMs.
Apache Ant Build Example (1999)
A complete Ant 1.2 build.xml for a multi-module Java project — compile, test, package, javadoc, and deploy targets. A faithful reconstruction of our Motorola build system.
CVS Workflow Scripts (1999)
Shell scripts that wrapped our CVS workflows at Motorola — branch creation, merge helpers, and the nightly tag script. A snapshot of how teams managed code before Git.
JVM GC Benchmarks (1997)
Java microbenchmarks for the JDK 1.1 garbage collector — object allocation rates, finaliser cost, and the difference between short- and long-lived objects.
WAP WML Card Demo (1999)
WML source files for a WAP deck from 1999 — a minimal but functional WAP site demonstrating cards, navigation and WMLScript, the way it was actually built.
Java Socket Server (1997)
A complete client/server TCP implementation in Java from 1997 — multi-threaded server, connection pooling, and a simple line protocol. No frameworks.
HA Heartbeat Monitor (1997)
Java implementation of the primary/standby heartbeat and failover mechanism we used for the NMS at Motorola — no external libraries, just sockets and threads.
GoF Patterns in Java (1997)
Minimal, runnable Java implementations of the five GoF patterns we used most at Motorola: Observer, Strategy, Factory Method, Decorator, and Command.
UML Design Examples (1997)
PlantUML source files for the class, sequence and component diagrams we drew before coding our network management system at Motorola.
Java Threading Patterns (1997)
Working Java examples of the core concurrency patterns used at Motorola in the late 90s — producer/consumer, thread pools, and monitor locks.