// selected work
Systems I've built
A focused set of full systems, not snippets. Labelled honestly: what's
live, what's still in development, and what's team work.
A Kaggle-style competition platform that securely runs and scores untrusted competitor code at scale. I led the engineering.
- Kubernetes-native eval pipeline (FastAPI → RabbitMQ → Kaniko → isolated GKE jobs) with NetworkPolicy egress lockdown for running untrusted code safely.
- An AEMO-calibrated energy-market simulation engine (battery wear, FCAS, carbon pricing, noisy forecasts), published to PyPI with CI auto-release.
- Adversarial scenario design (false-data injection, an LLM-vs-regex compliance trap) with a state-leakage contract test that hides ground truth from competitors.
- Python
- FastAPI
- Kubernetes · GKE
- Docker · Kaniko
- RabbitMQ
- PostgreSQL
A focus tool that blocks distractions based on what you're actually trying to do, not a fixed blocklist. Shipped to the Chrome Web Store.
- A full three-tier system: an MV3 extension + a serverless GCP backend (Hono on Firebase Functions) + a React dashboard, coordinated through Firebase Auth.
- Goal-aware blocking: a quadratics video passes while a gaming video is blocked, served by Gemini 2.5 Flash with Zod-validated input and output.
- Real cost/latency engineering: a local verdict cache cuts repeat checks from ~300ms to under 10ms.
- TypeScript
- React
- Chrome MV3
- Firebase Functions
- Vertex AI · Gemini
- Hono
A personal AI agent I run on my own machine and reach from my phone. The interesting part is the permission layer: it asks before doing anything it can't undo.
- A policy-as-code permission engine: money and trades hard-forbidden, every outward action approval-gated, fail-closed by default.
- Reachable from a phone PWA over a private Tailscale network. It can even rebuild and restart itself from your phone.
- TypeScript
- Claude Agent SDK
- Fastify
- Next.js PWA
- Tailscale
An AR assistant that watches a scene, remembers it, and answers questions about it later. Built for everyday recall, and for people living with memory impairment.
- A hand-rolled vector memory store with normalized cosine similarity, time-windowed recall, and disk persistence.
- A low-latency streaming voice pipeline: Whisper → Gemini intent router → sentence-chunked parallel TTS over SSE, tuned for time-to-first-audio.
- Python
- Flask
- React
- Gemini Vision
- Whisper
- SSE
An offline-first AI messaging engine for small business: scheduled SMS/WhatsApp campaigns and a 24/7 AI auto-responder.
- A properly multi-tenant backend with per-tenant query scoping, IDOR guards, idempotency keys, and server-side plan gating.
- 95 tests, with Postgres run in-process (PGlite) so CI needs zero infra, plus an honest
SECURITY.md threat model.
- TypeScript
- Expo · React Native
- Hono
- Drizzle
- PostgreSQL
- Twilio
Describe a job in plain English; get a compliant, print-ready Australian tax invoice in one click.
- Real ATO tax logic as a single source of truth: GST titling, the $1,000 buyer-ID rule, 47% no-ABN withholding, and a genuine ABN checksum.
- Plain English → strict JSON via OpenAI Structured Outputs, with an offline fallback parser so it still works with no API key.
- React
- Vite
- OpenAI Structured Outputs
- @react-pdf
- Vercel
An infinite-canvas ink and handwriting app for Android: smooth vector strokes on a canvas that never runs out of room. Launching soon on the Google Play Store.
- A pressure-aware vector ink engine: strokes are stored as resolution-independent paths, so handwriting stays crisp at any zoom on an effectively infinite canvas.
- Built natively with Jetpack Compose and a custom Canvas/graphics pipeline, with pan, zoom, and low-latency stroke capture tuned for stylus input.
- Kotlin
- Jetpack Compose
- Android
- Canvas / Graphics
- Vector ink