Workshop
Everything I've built, across domains.
Some shipped, some active, some research, some archived. The site you're on is one entry. Each card's status label says where it actually stands, whatever its title suggests.
Featured · live demo
Counter demo, driven by Lua in WASM
Click state held in a Lua signal, DOM updated through a hyperscript helper. Roughly the smallest honest proof that the runtime works.
-- pages/counter.lua (abridged) local h = require("h").h local reactive = require("reactive") local count, setCount = reactive.signal(0) local root = h("div", {}, h("p", {}, function() return "count = " .. count() end), h("button", { onClick = function() setCount(count() + 1) end, }, "increment") ) dom.mount(root, "#app")
Live demo · PaymentsLive
Reconciliation checker
A ledger matched against a provider settlement report, by reference, in Lua. Six planted discrepancies, each caught with a reason; edit an amount and the verdicts re-run live.
Run demo →Live demo · Lua on WASMLive
Lua playground
Edit and run Lua 5.4 in the browser: live DOM preview, console, a fresh engine per run and an instruction-limit guard. The counter and todo modules run in it unmodified.
Open playground →
Status:
Live, active, shipped
In development, ongoing
Research, archived
FintechActive
On-prem LLM gateway
Freelance engagement for a bank: multi-provider routing, RAG pipelines, multi-agent orchestration, zero data egress. Case study →
c# · .net · rag · multi-agent
FintechShipped
Payment gateway rails
At ATL Software: 60+ third-party payment providers behind one checkout — adapters, transaction state machine, fraud pipeline. Contributed to a measured +15% conversion. Case study →
angular · .net · 60+ providers
FintechLive demo
Reconciliation checker
Ledger vs provider settlement report, matched by reference in browser-side Lua. Integer cents, one verdict and reason per reference, editable sample data. Run it →
lua · integer cents · reconciliation
SystemsLive
c-copper
The hand-written C MVC framework serving this page. Socket loop, pthread dispatch, pattern router, middleware chain, template engine. Case study →
c99 · pthreads · no framework deps
SystemsActive
Lunar
Statically-typed superset of Lua: compiler, LSP, bundler, and test framework, all in Go. TypeScript-for-Lua, end to end. Source →
go · compiler · lsp · bundler
SystemsIn development
Cobre
Razor-pages-inspired web framework in C. .cob transpiles to C, compiles to .so, hot-loads. Arena allocator, TOML config.
c · transpiler · arena
SystemsArchived
Axon
First pass at an on-premise LLM gateway in C#. Routing, request shaping, prompt template layering. Stays in the archive.
c# · llm gateway
AI labShipped
The Council
Four Claude personas argue a question in parallel; an Arbiter synthesizes one answer. Built to see if forced disagreement beats asking one model twice.
react · 4 personas + arbiter
AI labActive
Doc OCR Indexer
OCR pipeline that hands raw text to a local LLM for classification and field extraction — dates, parties, totals — into a searchable store.
python · ollama · mxbai-embed-large
AI labActive
RAG Retrieval Bot
Retrieval-augmented chat, end to end. Embed, store, kNN, stitch top chunks into the prompt — every stage wired by hand, no framework.
python · sqlite-vec · ollama
AI labActive
Go Coding CLI
Single Go binary talking to the local Ollama daemon from inside the shell. Streams tokens, keeps a session buffer, stays out of the way.
go · ollama · streaming
WebLive
wasmoon-bridge
Browser-side Lua runtime, mounted per route. Signals + hyperscript in a ~120-line Lua library; pages without a module ship zero wasmoon. Powers this site.
lua 5.4 → wasm · signals
WebLive demo
Lua playground
An editor, preview and console over the same wasmoon runtime. Fresh engine per run, count-hook loop guard, per-preset drafts kept in the browser. Open it →
lua 5.4 · wasm · debug.sethook
WebShipped
Scrum Dashboard
Real-time sprint board over Jira Cloud. SignalR delta updates, a D3 force graph of backlog clusters, an OpenRouter-backed assistant inline.
angular · .net · signalr · d3
WebOngoing · NDA
Enterprise Web Work
Angular and .NET inside banking environments; multilingual WordPress at enterprise scale with custom plugins and legacy integrations. Walkthrough under NDA.
angular · .net · wordpress
GamedevIn development
Passages
LitRPG-inspired third-person action RPG. FF12-style gambits, dual Vitality/Essence resources, a behavior-tree editor for companions.
unity · c# · gambit ai
GamedevIn progress
Bevy + SDL2 Track
Sequential learning ladder: SDL2/C++ fundamentals (Pong → Breakout → top-down shooter), then the same exercises rebuilt ECS-first in Rust + Bevy.
rust · bevy · sdl2 · c++
GamedevResearch
BSP Renderer + Unity Shooter
From-scratch BSP renderer in C — tree construction, polygon splitting, painter's-order traversal — plus a Unity shooter prototype on the C# side.
c · unity · bsp
ToolingActive
AI CLI Skills System
Reusable SKILL.md playbooks for Angular, .NET, and React work inside AI coding CLIs — bash + markdown, versioned with the projects that use them.
bash · markdown · skill.md
19 entries · the site you're on runs on c-copper and wasmoon-bridge