Selected work

A web app where Magic: The Gathering players build custom grids of card artwork and export them as shareable images. Live in production with real users — card search, drag-and-drop layout, and high-resolution image export, built against the Scryfall API.

React · TypeScript · Scryfall API · canvas export · Vercel

A drum-MIDI humaniser. Programmed drums are quantised and lifeless — WobbleMIDI adds statistically modelled timing and velocity, sampling per-hit deltas over a slowly drifting groove so the result pushes and pulls like a real drummer.

Python · statistical modelling · MIDI · desktop GUI

Async Python agent connecting a locally hosted LLM to a SIEM through MCP: a natural-language investigation query goes in, typed and structured results come out. Shipped into a shared agent platform behind a feature flag for safe rollout, with full async test coverage.

Python · asyncio · MCP · Pydantic · pytest

Built in a secure environment — happy to share more context in conversation.

Experience

2025 — Graduate Engineer, Department of Defence — agent systems & MCP integration, AI/ML research pipelines, engineering data platforms.
2017 – 22 B.E. Software, UTS — with Diploma in Professional Engineering Practice.