Iām a product-oriented Full Stack Engineer. I love shipping features, figuring out what brings value to users, and building interactions that make workflows feel effortless.
Hire meāA two-day rewrite of a paid third-party ANTLR SQL parser, 3ā20Ć faster on real customer SQL. The production version isn't mine.
A year of frontend work to move off Firestore. Dual writes, feature-flagged reads, SSE for real-time, no customer-visible incident.
View models, state management as a data access layer, and why feature isolation is a lie.
Open-source Go CLI: a local daemon watches GitHub PRs and runs your AI provider in a dedicated worktree when CI fails, merge conflicts appear, or review threads still need attention.
A sortable comparison of Cursor-supported models ā token pricing, Arena scores, speed tiers, and cache-aware bang-for-buck, refreshed from upstream data on a schedule.
Inspect, edit, and copy back every MIME type on your clipboard. Monaco editor with syntax highlighting and rich previews for HTML, JSON, SVG, Markdown, and CSV.
Anonymous question submission for all-hands meetings. WebRTC peer-to-peer, no backend, no logs, with optional client-side AI to anonymize your writing style.
A Spotify Wrapped-style dashboard for your Cursor IDE usage, built entirely by AI.
A serverless Secret Santa organizer with constraints and shareable reveal links.
A Spotify playlist cover generator with constrained randomness and geometric design rules.
A quick and useful date calculator, built to test my new boilerplate.
Building HouseHodl at ETHGlobal NYC after winning Web3NZ.
Our entry to the inaugural 2025 Web3 Hackathon.
A rollercoaster weekend of hosting TerribleHack 2025.
My first time running a hackathon, and a farewell to Zac.
A political satire card game for Kiwijam 2024.
An infrastructure visualisation and mapping tool for GovHack 2023.
A community vote controlled automated bartender for TerribleHack 2023.
A public transport rewards programme proposal for GovHack 2022.
A two-day rewrite of a paid third-party ANTLR SQL parser, 3ā20Ć faster on real customer SQL. The production version isn't mine.
A year of frontend work to move off Firestore. Dual writes, feature-flagged reads, SSE for real-time, no customer-visible incident.
Redux subscriptions, duplicate data, and an entire workspace held in memory. Memoization was the bandaid.
View models, state management as a data access layer, and why feature isolation is a lie.
How interfaces let you ship AI-generated code without regret.
Data sovereignty, ethical software, and why your app should outlive its creator.
Typed error handling in TypeScript, mapping errors between layers, and an unusual namespace pattern.
Controllers, Services, and Repositories, and the dependency injection decisions that make it practical.