Senior front-end engineer | React, TypeScript, and applied AI
I turn complex data and workflows into usable web applications. I've programmed professionally since 1997, and my recent work spans interactive front ends, small local AI models, browser tools, and the infrastructure that runs them. I'm based in Front Royal, Virginia and interested in senior front-end engineering and AI application roles.
Career history · Blog · Email · LinkedIn
Career documents: Introduction letter (PDF) · Resume (PDF) · Selected projects (PDF)
- React and TypeScript: Public-ledger explorer — filtering and visualizing public financial data.
- Applied AI: Crystal-9 — a compact, validated MoE model built for tight memory limits.
- Server operations: Zogograph Client — telemetry, alerts, and AI-assisted diagnostics with cost tracking.
- Interactive tools: D64 Storage Lab — visual disk repair, recovery, and read-efficiency experiments.
- Front end: React, TypeScript, JavaScript, accessible interfaces, data visualization, and browser APIs.
- Applied AI: PyTorch, model training and validation, MoE architectures, Ollama, llama.cpp, local inference, and tool calling.
- Services and delivery: Node.js, PHP, C#/.NET, SQLite and SQL, Linux hosting, Forgejo, CI/CD, and WHM/cPanel automation.
| Project image | Project |
|---|---|
![]() |
Crystal-9 | Tiny MoE for 8-bit hardware Redesigned a sparse MoE tic-tac-toe policy for a 13-token vocabulary and tight memory budgets. Released a 46,299-byte packed INT4 artifact for a custom local runtime, with zero policy misses across 294,778 legal histories. A compact adaptation powers Crystal Palace 9 on the C64. Source · Hugging Face |
![]() |
Crystal Palace 9 | AI on 8-bit hardware Built a Commodore 64 tic-tac-toe game around Crystal-9, a compact mixture-of-experts model trained to choose moves. Adapted inference and a command-room interface to the machine's tight memory and 8 x 8 multicolor graphics constraints. Source · Video |
![]() |
Palace-9 | Local model inspection A playable tic-tac-toe lab pairs a deterministic controller with a compact MoE model trained from scratch. It uses the Qwen2-MoE architecture for Ollama and llama.cpp compatibility without a custom fork; the browser inspects checkpoints locally. Live demo · Source · Ollama · Hugging Face · Video |
![]() |
Zogograph Client | AI-assisted server monitoring PHP/SQLite collectors and a JavaScript dashboard make server telemetry, alerts, and diagnostics readable. An AI assistant calls diagnostic tools and tracks the cost of an investigation. Source · Videos |
| Project image | Project |
|---|---|
![]() |
Sculpted Prim Toolkit | Three.js editor Decodes Second Life-style RGB sculpt maps into editable 3D geometry. Camera views, mesh overlays, textures, and vertex tools support PNG, glTF/GLB, OBJ, and STL exports. Live demo · Source · Videos |
![]() |
Data Over Audio | Web Audio API Transfers text and binary data through sound using MFSK modulation, packetization, CRC checks, Hamming error correction, interleaving, and repeat requests. Live demo · Source · Videos |
![]() |
Emoji Explorer | Unicode and pixel font A localized Unicode explorer with version and sequence filters, favorites, keyboard navigation, and offline PWA support. Includes a custom 12 x 12 Pixel Emoji font and pixel editor. Live demo · Source · npm |
![]() |
QR Code Generator | Creator and inspector A browser tool backed by a first-party ES module for mixed segmentation, versions 1-40, Reed-Solomon correction, mask selection, and structural inspection. Live demo · Source |
| Project image | Project |
|---|---|
![]() |
Dreamy Tags | WordPress plugin An open-source PHP/Gutenberg plugin for category- and tag-filtered clouds, with exclusion rules and minimum-use thresholds. Published as a block, widget, and shortcode. Plugin directory · Source |
![]() |
Restoring the Signal | Dialable exhibit A live installation at Stone Branch Center for the Arts joins Raspberry Pi, Asterisk, and a PHP contribution site. It handles telephone audio, dialplans, transcription, and TTY support. Live demo · Source · Videos · Press and photos |
![]() |
Tiny Pockets Press | Miniature publishing A modular JavaScript editor for miniature books, with layout and imposition logic and separate interior and cover print/PDF views. Live demo · Source · Videos |
![]() |
Shoomi's HomePage | GeoCities restoration A 1990s web restoration with a Canvas recreation of its Java applet marquee, Web Audio MIDI playback, and a browser version of a Visual Basic color editor. Live demo · Source · Videos |
| Project image | Project |
|---|---|
![]() |
D64 Storage Lab | Repair and optimization A JavaScript workbench maps Commodore 64 disk sectors and file chains, estimates read efficiency, repairs corruption, restores deleted files, and compares optimized and fragmented layouts. Live demo · Source · Video |
![]() |
Sector 256 | Tiny programs for the C64 Built a graphical Commodore 64 launcher for games, utilities, demos, and experiments with stored payloads of 256 bytes or less. Combines 6502 assembly, shared routines, and a Python build pipeline to package programs into a D64 disk image, with automated machine-code tests. Live demo · Source · Video |
| Project image | Project |
|---|---|
![]() |
Stream Scribe | Independent meeting archive and research Developing an independent archive and research tool for livestreamed government meetings. Captures video, transcribes locally with Whisper, and supports searching transcripts and navigating thumbnails while meetings are still live. Adds speaker, topic, and vote annotations, exports short clips, and fills capture gaps from official recordings. Built with React, TypeScript, Node.js, and SQLite. Source |
I volunteer with local history and library projects, started a LEGO users group, and sometimes perform as a clown. I like projects that connect technology with something people can actually use, explore, or enjoy. I also created The Bard of Bizarre, a multimedia project built around my lyrics and a 16-track concept album with AI-generated music and visuals. Listen on Spotify and other services · Watch “Time Is a Flat Liar”

















