Software

What I build

Web, iOS, and tools in use.

Handcrafted

Stained Glass

Since 2022, mostly given as gifts.

Brisbane

About

Product engineer.

I'm a project manager at the National Heavy Vehicle Regulator, where I've worked since 2017. Outside work I build AI products end to end, alongside native iOS apps on the App Store and software that takes a messy process and finishes the job.

Most of what I build now has a language model in it somewhere. The part I care about is deciding where it goes: what it gets to see, what it has to prove, and which jobs are better left to ordinary code.

Stained glass since 2022, mostly given as gifts.

How I use AI
  1. Grounded generation

    A model writes from facts it has been handed, not from memory. Travel History App gathers Wikipedia history and search-verified facts before Claude writes a word. My piano teacher project reads the score with optical music recognition first, so Claude answers from the real notes instead of guessing from a picture of the page.

    Travel History App (Name TBC)Music Teacher

  2. Retrieval over real documents

    Defect Council classifies heavy-vehicle defects against the National Heavy Vehicle Inspection Manual. It finds the relevant sections with hybrid search (FAISS vectors and BM25 keywords, merged by reciprocal rank fusion), then puts that text and the HVNL risk matrix in front of every model.

  3. Several models, one answer

    In Defect Council, Grok, Gemini and GPT each classify a defect on their own, a judge settles disagreements, and a critic checks the result against the risk matrix. Every model's working is kept in the output. Travel History App runs a model as a nightly judge that rereads cached cards and rebuilds the weak ones.

  4. Reading messy documents

    MerchTally uses a vision model to read sales statements in whatever form they arrive: photos, screenshots, PDFs and handwritten notes. Each line is matched to the seller's catalogue with a confidence score, and a person confirms the uncertain ones.

    MerchTally

  5. Images made for one person's story

    ABC Book takes what someone tells it about their situation and generates an illustration for each page that fits it, then puts the pages in order as a finished book. Nothing is locked in: every image and every page can be reviewed and edited before the book is made.

  6. Rules enforced in code

    I don't rely on a prompt to keep a rule. Music Teacher throws away any mark that doesn't land on a real note. Travel History App rejects filler and wrong place names before a card is saved. Define North asks for strict JSON sized to the grid, and cleans up when it doesn't get it.

    Music TeacherDefine North

  7. Knowing where a model doesn't belong

    The Risk Register Builder gives the same register for the same answers, every time, with no model in the live tool. Music Teacher's piano fingering is a model of the hand fitted to professional pianists' fingerings, not a chatbot's guess.

    Risk Register Builder

  8. Building with coding agents

    I work with coding agents across Swift, TypeScript and Python. They rewrote Travel History App from Flutter to native Swift, and built the Dark Knights publishing pipeline, which carries its own agent instructions so the next update goes the same way.

    Travel History App (Name TBC)Dark Knights

Speaking

Speaker at the Cursor AI Brisbane workshop, August 2026.

Aaron Moeller speaking at the Cursor AI Brisbane workshop, August 2026
Cursor AI Brisbane, August 2026
Experience

National Heavy Vehicle Regulator

2017 to present

Product engineer

Programs

  • Industry Codes of Practice Program
  • National Strategic Geospatial Model
  • National Services Transition
  • National Inspection Reform
  • Risk Register Builder, published as a public NHVR resource, and the NHVAS to HVA gap analysis tool

Selected work

  • Workforce scheduler for crews with capacity and location constraints. Excel roster in, clustered assignments out on a map. TypeScript, React, Express, Mapbox.
  • Pulled tables, figures, and layout from PDFs into spreadsheets. Python, plus whatever else the file required.
  • Turned inspection GPS traces and suburb lists into journey and volume maps, with place names resolved against a local gazetteer so the same suburb name in two states stays apart. Python, Flask, GeoPandas, Mapbox.
What I build
  • Native iOS apps, shipped

    Two apps live on the App Store, and a third with background location, a lock-screen Live Activity, CarPlay and in-app purchase on the way.

    In Their EyesTempoTravel History App (Name TBC)

  • Web products, database to domain

    The interface, the API, the background jobs and the hosting, run by me. MerchTally is in active weekly use.

    MerchTallyDefine North

  • Messy files into clean data

    Photos, handwritten notes, PDFs, spreadsheets and league box scores, turned into records someone can use.

    MerchTallyDark Knights

  • Expert knowledge into a guided process

    Taking what a specialist knows, like a national code of practice or a planning method, and turning it into steps anyone can work through to a result that fits them.

    Risk Register BuilderDefine North

  • Maps and location

    GPS traces turned into journey and volume maps, crews scheduled on a map, and an app that knows where you are standing.

    Travel History App (Name TBC)

  • Jobs that run without me

    Scheduled scrapes that update a site after every game, and nightly reviews that rebuild weak content.

    Dark KnightsTravel History App (Name TBC)

The tools behind each one are listed on its project page.

Click here to open the immersive Gallery
1 / 5