Building systems on top of messy real-world data. I focus on:
- Data pipelines with observability to detect poorly processed data.
- Local-first analytical UX for interactive data exploration.
- Developer tools to catch issues during development.
✍️ Writing
I write about things that broke, tradeoffs, and what didn’t work:
- Serverless GPU vs CPU inference for ML workloads.
- Iterating on a data pipeline from concept to production.
- Won a 1000 USD open source bounty (SolidHack 2024) for a UI component contribution.
- Currently contributing external Docker image support to SST.
- Added dependency highlighting to the Skott dependency visualiser.
🏠 NewHomie — real estate analytics
Analytics platform for finding a place to live in Australia:
- Transforming messy scraped property data to help users compare properties across different buying strategies.
- Observable pipeline with fault tolerance on AWS (OpenTelemetry + LGTM).
- Local-first dashboard as code (DuckDB WASM).
- In production since October 2025.
🎹 Musidi - on-demand piano transcription
Serverless ML piano audio to MIDI converter:
- Highly parallel AWS Lambda architecture
- Explores tradeoffs between CPU/GPU inference and parallel processing strategies.
- In production since April 2024.
ESLint plugin for detecting runtime compatibility issues:
- Catches runtime incompatibilities statically before they reach production.
- Built for server-side libraries that need compatibility across runtimes.
Most projects are iterative and evolve through real-world usage and constraints. I optimise for learning through real-world projects.




