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 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.
A Kaggle-style competition platform that securely runs and scores untrusted competitor code at scale. I led the engineering.
- Worked with MLAI to build an energy-grid simulation engine for a live hackathon that drew 160 participants over 22 teams: modelling solar curtailment, demand/price forecasting, frequency response (FCAS), and adversarial cyberattack scenarios, with hidden-variant scoring against optimal-cost baselines.
- Architected and deployed a Kubernetes-based (GKE Autopilot) evaluation platform that automatically ran and scored every participant’s submitted control algorithm against hidden grid scenarios, powering a live leaderboard.
- Led a team of 8 engineers across ML, backend, and infrastructure to design, build, and ship the platform end-to-end.
The only infinite-canvas ink and handwriting app on Android: smooth vector strokes on a surface 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.
- v0.13.0 released
- Actively iterating
- Personal
A Windows 11 tray app that treats a whole working context (apps, a dedicated Chrome profile window, an exact multi-monitor layout) as one named workflow you activate on demand.
- DPI-safe window placement: positions are stored as fractions of each monitor’s work area, so layouts survive DPI changes and a portrait rotation.
- Safelist-aware minimize of everything else, four CLI verbs, a tray app with first-run onboarding, and a consumer installer.
- Ships publicly as a versioned Windows installer with a published SHA-256 checksum; currently v0.13.0, verified live on a mixed-DPI two-monitor desktop.
- Final-year project · Monash
- In development
A self-powered smart insole that captures gait and uses AI to track its variability as an early biomarker of dementia. Predictive, not diagnostic. Built to supplement a GP pathway.
- A CNN+LSTM model tracks short- and long-term gait variability as an early biomarker of dementia. Predictive, not diagnostic, it supplements a GP pathway.
- Self-powered hardware: PVDF piezo energy harvesting with hybrid supercapacitor/LiPo storage, FSR pressure sensors and a 6-DOF IMU sampled at ≥100 Hz on a Nordic nRF54L15.
- Sensor data bursts over BLE to a phone app that runs the model. FYP A (initial paper) done; FYP B (final paper + prototype) in progress, 2026.
- DeepNeuron · Team
- Completed
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.
An AI-powered daily SMS scheduler for Android, in clean MVVM Kotlin with production-grade rate-limit backoff.
- Clean MVVM Kotlin with production-grade rate-limit backoff.
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.
A free, open-source speech-to-text desktop app that works completely offline: press a shortcut, speak, and your words appear in any text field.
- Privacy-focused and fully on-device: transcription happens locally, without sending any audio to the cloud.
- A fork of Handy by cjpais. The offline transcription foundation is upstream’s work. My contribution is the app-aware post-processing layer the original didn’t have. It formats dictation for the app you’re focused on: code in an editor, a structured email in Outlook, a quick line in Slack.
- Added local-model integration with Ollama and LM Studio, so transcription can run on fully local models of your choice.
Compare current (2026) AI model pricing and context windows side by side, then estimate what a real workload would cost per month.
- Covers Anthropic, OpenAI, Google, Meta, Mistral, and DeepSeek: a sortable spec table, $/1M-token meters, and an estimator that ranks every model by monthly cost for your workload.
- A self-contained, dependency-light single-page app (no backend, no tracking, no API keys) built with Vite and strict TypeScript, with the cost math covered by vitest.
Other builds
-
FrameLift Turn a phone video into a publish-ready still: AI frame selection, HDR-correct colour, and 4× upscaling. -
Recess Put your LinkedIn feed on a curfew: one mindful 30-minute session a week. Messaging, jobs, and search stay open. JavaScript · Chrome MV3 · Shadow DOM Source coming
-
Forge A local-first TypeScript AI agent framework with a pluggable provider layer. Early scaffold: the public types and module layout are in place; implementations land module by module. TypeScript · zod · vitest Source coming
-
Pegasus 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. TypeScript · Claude Agent SDK · Fastify · Next.js PWA · Tailscale Writeup coming
-
Relay An offline-first AI messaging engine for small business: scheduled SMS/WhatsApp campaigns and a 24/7 AI auto-responder.