On the shelf
Three products I designed, built and run myself, and a piece of published research. Each one is live, so you can pick it up and look underneath.
Climate policy simulator
Tiny Aotearoa
A free tool for trying ideas to cut New Zealand's greenhouse gas emissions. Move nine levers, from electric cars to native planting, and a 3D island shows what happens to emissions out to 2050 and what it could cost or save.
- Checks every plan against the legal net zero and methane targets, and links each figure to a published source.
- Built to work with screen readers and keyboards, on a phone or a slow connection, with accessibility checks in the automated tests.
- No accounts, no cookies and no tracking. A plan is stored only in the link you share.
- My part
- Solo project: design, build and upkeep
- Made with
- React, TypeScript, three.js with react-three-fiber, Vite, Vitest, Playwright with axe
US fuel price analysis
GetPumpRate
An independent site that turns the US government's weekly fuel price data into something a driver can use: where this week's price sits in its 52 week range, what a gallon is made of, and why one state pays more than another.
- Server-rendered pages for the national average, the five supply regions and nine states, each refreshed from the EIA Open Data API and cached so the source is never hammered.
- A published methodology gives the formula behind every computed figure, so readers can check the numbers line by line.
- Includes a fuel cost calculator, a state tax comparison and price alerts.
- My part
- Solo project: design, build and upkeep
- Made with
- Next.js, React, Recharts, Upstash Redis, EIA Open Data API, Vercel
Mobile app for iOS and Android
Veil Moments
A quiet daily quotes app. Say whether you're struggling, okay or thriving, and it sends a quote matched to your mood at the rhythm of your day.
- Live on the App Store and Google Play, with a paid tier that adds tone filters, mood history and an evening notification.
- One Flutter codebase for both platforms, with local notifications scheduled to the user's time zone and saved quotes kept on the device.
- A small Node.js service serves the quote library, filtered by mood and tone, and skips quotes the user has already seen.
- My part
- Solo project: design, build and upkeep
- Made with
- Flutter, SQLite, in-app purchases, Node.js, Express
Peer-reviewed research paper
Googling it
A study of how Google's news search results shape the way newsrooms see social issues. It found that results can affect a newsroom's perception, but journalists mainly rely on search for complementary information.
- Co-authored with Verica Rupar, Merja Myllylahti, Haley-Georgia Jones, Weihua Li and Mahsa Mohaghegh.
- I built the data pipeline as a research assistant at Auckland University of Technology: comparing ways to collect Google search results, then running natural language processing over what came back.
- Published open access in Interactions: Studies in Communication & Culture, volume 13, issue 3, pages 253 to 273.
- My part
- Co-author, data collection and analysis
- Made with
- Python, React, Google Colab, pre-trained NLP models
Experience
More than three years in fintech at humm group, moving from testing the product to building it. Before that, university research and an internship leading a small team.
July 2024 to now
Software Developerhumm group
- Part of the core engineering team that launched and maintains humm loan, an Australian credit product, in line with updated financial regulations.
- Design and implement features across the front end and the back-end microservices.
C#, .NET, Angular, Node.js, Model Context Protocol
May 2023 to July 2024
Quality Assurance Engineerhumm group
- Shipped React code into a fintech production environment.
- Developed the testing techniques the company uses to raise product quality.
- Presented the team's progress to executives and stakeholders every fortnight.
React, Playwright, Salesforce Lightning, Azure DevOps
July 2022 to February 2023
Research AssistantAuckland University of Technology
- Researched ways to extract and process Google search results under Dr Weihua Li, work that led to a published paper.
- Reported metrics to the client each week and recommended fixes.
- Alongside this, taught object-oriented programming in Java and graded the work of 70 students.
Python, React, natural language processing
February to November 2022
Software Engineer, internshipCAITO.AI
- Led a team of five developers building a beta web app for workforce planning in Nepal's vocational sector.
- Added a language model that flags toxic text to keep form submissions usable.
React, Firebase, TensorFlow.js
2020 to 2022
Bachelor of Computer and Information Sciences, Software DevelopmentAuckland University of Technology
Off the clock

Grew up around art in Kuala Lumpur. Found code on a trip to San Francisco and never really put it down.
Auckland's home now. If I'm not at a keyboard, I've got clay on my hands, throwing pots or building sculptures. There's always music on, and I'm actually listening, not just letting it play. The pot up top is the only one of mine that can't crack in the kiln.
At work I care about the unglamorous parts: reading the regulations properly, writing tests that catch real problems, and showing where every figure comes from so anyone can verify it.