1981AVADefend
Defender rebuilt from the original's documented behaviour: smart bombs, hyperspace, humanoid rescues and the hall of fame.
Insert coin · Player 1 ready
Software architect, at the keyboard since grade school in the late '70s. These days I rebuild the arcade and RPG classics I grew up on in C# and Avalonia, so they run natively on Windows, macOS and Linux, Intel or ARM.
Each one is a single self-contained program: download, unpack, run. No installer and no .NET needed.
1981Defender rebuilt from the original's documented behaviour: smart bombs, hyperspace, humanoid rescues and the hall of fame.
1982Twin-stick arena shooter. Save the last human family from wave after wave of grunts, brains and enforcers.
1981Ride the rim of the tube in red vector wireframe, with gamepad support and the warp between levels.
1979Wireframe terrain, a fuel gauge and a landing pad. Watch your vertical speed, and the asteroids.
1979Inertia, wraparound space, saucers with an alert siren, and controller support.
1981Bounce off the octagon's walls while droids lay mines. Spawn protection and explosions included.
1979Defend the rear of your ship in 3D vector space. Now with Capitol Ship mini-bosses, turrets and missiles.
1980Shoot through three counter-rotating rings to hit the cannon, while it fires through the gaps and homing mines close in.
1983Command the Enterprise from a 3D main viewer and tactical scanner against Klingons, anti-matter saucers and Nomad, docking at starbases to refill.
1983Dogfight TIE fighters, skim the Death Star's towers, then run the trench past Vader and put a torpedo down the exhaust port.
1980Tank combat through the periscope on a wireframe plain: radar, tanks, missiles, supertanks and the saucer, under the volcano.
1983Mine planetoids for Sinibombs while workers build the Sinistar piece by piece. Beware, I live!
1980Shoot your way through a maze of electrified rooms and talking robots before Evil Otto bounces in. Intruder alert!
1980Defend six cities from warheads, MIRVs, bombers and smart bombs with three missile bases, until THE END.
1982Fight the star's pull, raze bunkered planets, tractor fuel aboard and escape the reactor before it blows.
1978The march of the invaders, synthesised sound effects and full gamepad support.
1981Swooping waves, a breathing formation, and a tractor beam: lose a fighter, win it back, and fly two at once.
1982Flap your ostrich above the buzzard riders: the higher lance wins. Grab the eggs before they hatch; two can play at once.
1980Shoot the centipede apart in a field of mushrooms while the spider, flea and scorpion close in. Steer with the mouse like a trackball.
1981Six adventurers, a ten-level wireframe maze, and the mad archmage Morthrain waiting at the bottom.
1982The 50-level dungeon rebuilt room for room, in real time, with a Modern mode that adds an automap and no time limit.
1983Party creation, towns, dungeons, gem socketing and an OpenAL soundtrack.
1985Skara Brae and its catacombs, procedural music that darkens as you descend, and a second tower to delve.
1986First-person party dungeon crawl with towns, automap, riddles, daily challenges and a map editor.
1990Angband 4.2 in C#. Its game data is checked against 4.2.5 on every build.
1986Crew, starships, alien diplomacy, planet surveys by terrain vehicle, and real-time combat.
1984Trading, docking and dogfights across eight galaxies, rendered in wireframe.
On Linux some games need aplay for sound, or SDL2 for gamepads on ARM. Each game's README says which.
Editors, controls and utilities, also cross-platform with Avalonia.

Visio-style diagram editor. Reads .vsdx; exports SVG, PNG, PDF, Mermaid and .vsdx.

Directory Opus reimagined: a cross-platform file explorer in .NET and Avalonia.

Graphical query builder for Microsoft SQL Server.

Electronic circuit simulator: draw a schematic and watch it run on a live oscilloscope.

CODE Complete rebuilt: point it at a database table and it writes the C# data class.

Shows the raw bytes a USB or Bluetooth game controller sends, live, for writing code that reads it.
DATASET A DATASET B SIM John Smith Jon Smyth 0.91 P. Raghunathan P. Ragunathan 0.96 Acme Corp. ACME Corporation 0.88 Mary O'Neil Mary ONeill 0.90 Dave Kowalski David Kowalsky 0.86 threshold 0.85 · 5 pairs · export xlsx
Finds the same person or company across two Excel sheets with no shared key and the names spelled differently.
TODO DOING DONE #21 Avatars #17 Search #12 Login #22 Reports #18 Audit #13 Kanban #23 Webhooks #15 OIDC #24 Exports #16 Invites
A lightweight Jira-style issue tracker, in the making, to run as SaaS or on your own server.

Structured drawing canvas that code can populate and users can interact with.

The VB.Net-era LineChart control, rebuilt for Windows, macOS and Linux.

3D object viewer for Avalonia and .NET 9.

Timeline control for Avalonia applications.

Syntax-highlighting text box for Avalonia, with no dependencies beyond Avalonia itself.
Healthcare records, reporting and code generation: the systems that pay for the arcade.
Electronic health records with reporting, records management and a web portal.
Point-and-click database queries, with client-specific builds.
A database abstraction tool that grew into a full data-access code generator.
CODE Complete's generation as a RESTful API for enterprise deployment.
The originals, oldest first, and what each became here.
| Rank | Year | Original | Rebuilt as |
|---|---|---|---|
| 1st | 1978 | Space Invaders | AVAInvaders |
| 2nd | 1979 | Asteroids | AvaRoids |
| 3rd | 1979 | Lunar Lander | AVALander |
| 4th | 1979 | Tailgunner | AVAGunner |
| 5th | 1980 | Battlezone | AVAZone |
| 6th | 1980 | Berzerk | AVABerzerk |
| 7th | 1980 | Centipede | AVACentipede |
| 8th | 1980 | Missile Command | AVAMissile |
| 9th | 1980 | Star Castle | AVACastle |
| 10th | 1981 | Defender | AVADefend |
| 11th | 1981 | Galaga | AVAGalaga |
| 12th | 1981 | Omega Race | AVARace |
| 13th | 1981 | Tempest | AVATempest |
| 14th | 1981 | Wizardry | AVAWizardry |
| 15th | 1982 | Gravitar | AVAGravitar |
| 16th | 1982 | Joust | AVAJoust |
| 17th | 1982 | Robotron: 2084 | AVATron |
| 18th | 1982 | Telengard | AVAGard |
| 19th | 1983 | Sinistar | AVASinstar |
| 20th | 1983 | Star Trek: Strategic Operations Simulator | AVATrek |
| 21st | 1983 | Star Wars | AVAWars |
| 22nd | 1983 | Ultima III: Exodus | AVAUltima3 |
| 23rd | 1984 | Elite | AVAElite |
| 24th | 1985 | The Bard's Tale | AVABardsTale |
| 25th | 1986 | Party RPG classic | AVAMMB1 |
| 26th | 1986 | Starflight | AVAFlight |
| 27th | 1990 | Angband | AVABand |
I'm now an old architect in a small piece of a very large company that bought us about twelve years ago. I've been into computers since grade school in the late '70s, and I still like building things end to end.
At work I'm focused on modernization. At home it's local LLMs, single-board computers, and recreating the games that got me hooked, built from their documented behavior and released for every platform I can reach.