Professional
12 years in industry as a software engineer, building and running production systems. That includes working on an industry-leading lead management tool, handling complex calculations, big data and mapping intelligence; building auto-scaling processing workers to handle load, database administration, and turning customer requirements into systems that hold up at scale. These are the technologies I've used professionally:
Solo side projects
Built end to end in my own time: real-time multiplayer servers, minimalist web apps, and personal productivity tools. Mostly an excuse to solve a tricky problem or build a tool I needed.
Projects
A personal markdown notes and task app, with optional end-to-end encrypted private notes and a few games built in for downtime.
⚙ Under the hood
Per-note encryption is built on industry-standard cryptography (AES-256, with the key derived from your chosen password) applied entirely client-side, so the server only ever stores ciphertext and never sees the password or the plaintext note.
A minimalist Bible reading app built on the public-domain Berean Standard Bible, with accounts, notes, and cross-references.
/read/GEN/1) preserving poetry line breaks, section headings, Psalm superscriptions, and "words of Jesus" styling.⚙ Under the hood
The Bible text is imported from the official BSB USJ export straight into SQLite via an idempotent, safely re-runnable import script. Translator footnotes are deliberately dropped; everything structural is kept.
Sessions run through a hand-written SQLite-backed session store rather than a third-party one, written specifically to avoid pulling a GPL-licensed dependency into a project chosen from the ground up to be free of licensing entanglements.
A calm, cosy online game about ducks, a pond and a home of your own. Fish, collect and dress your duck, with no combat and no hurry. No framework and no sprite art.
⚙ Under the hood
An authoritative server tick, and a zone-broadcast / private protocol sent as a single binary buffer. Every item is one row in a single registry that the shops, wardrobe and admin pages are all built from.
What's in the water and the grass is never sent over the wire: each player's fish and bugs are a pure function of their username and the clock, so the server and browser work out identical ones and only events travel. Daily changes work the same way, so no calendar is ever stored.
A Club Penguin-style online game on a seaside island. Wander about, chat, play minigames for gold and spend it on clothes and a burrow of your own. No framework and no sprite art.
⚙ Under the hood
An authoritative server tick: the browser only says what it wants and the server decides, over a binary protocol defined once in a file the server, the browser and the test bots all share.
The minigames are deterministic simulations shared by both sides. You play your own copy at 60 frames a second with no lag, while the server replays your inputs on its own copy, never faster than real time, and pays out from that. A fingerprint of each copy's state travels alongside, so any drift between the two is caught.
Xiangqi, Hex and Checkers on one site: rated 10-minute games against people online, or an 8-level computer opponent for each game that runs right in your browser.
⚙ Under the hood
The server is the only referee. It plays every online move on its own copy of the game using the same rules files the browser runs, and it keeps the clocks, so an illegal, repeated or stale move just sends the real position back.
Computer games never touch the server while you play: each engine runs in a Web Worker in your browser. When a game finishes, the server replays its moves on a fresh board and works out the result itself before saving it to your history.
A KanbanFlow-style task board: To-do, Doing and Done columns, colour-coded tasks and as many boards as you like, in a single server-rendered page.
⚙ Under the hood
Moves are applied in the browser straight away using the same reordering logic as the server, then rolled back if the save fails. While dragging, the original card stays hidden in the page rather than removed, because browsers only report the end of a drag to an element that's still there.
Other projects
A nonogram-style picture logic puzzle, picked up by a small steady player base.
izrite.com/picross →An online skilling game on an island of its own: gather, make and fight your way up a set of skills.
izrite.com/hearthvale →Favourite tech