Led much of the architecture
Core translation workflow
The system that coordinates a translation job: file processing, vendor selection, the steps where people are involved, and the conditional business rules that decide what happens next.
Product engineer · Auckland, New Zealand
I build production software end to end: workflow systems, background processing, public APIs and the interfaces on top of them. Nine-plus years in, recent work includes applied AI, both in the products I build and in how I build them.
Professional work
Formerly Straker Translations · rebranded 2026
Arbitr provides translation services and AI context management. I work on the platform behind it: the workflow that moves a job from upload to delivery, the background processing underneath, the public API around it, and the AI features built into it. This is team work; each item below states my part.
Led much of the architecture
The system that coordinates a translation job: file processing, vendor selection, the steps where people are involved, and the conditional business rules that decide what happens next.
Designed
Redis-backed asynchronous jobs for machine translation and file processing, keeping slow work off the request path. It has run thousands of tasks.
Built
An API for external integrations, with API-key authentication, so clients can create and manage translation projects programmatically and receive webhook notifications.
Built and contributed
AI-assisted email classification and content categorisation, vendor ranking, and terminology/glossary matching inside the translation workflow.
Day to day
Working closely with Product to shape features, then developing, reviewing and delivering them, using AI coding tools throughout.
Earlier: Java Web Developer · Inspur Group, 2016 — 2018
Built independently, in my own time, to explore ideas end to end. These are personal projects, not commercial products.

Personal project · macOS
Local-first desktop music player
A desktop music library for music you already own: Rust indexes your folders into SQLite with full-text search and plays audio on a native thread; React and TypeScript render a Metro-style interface. Works fully offline.
Tauri 2 · Rust · React · TypeScript · SQLite · Zustand

Personal project · proof of concept
AI support inbox with human approval
Turns a customer message into a validated, structured analysis and an editable draft reply, grounded in company documents with checked citations. Nothing happens until a person approves it, and every step lands in an audit log.
FastAPI · Pydantic · SQLAlchemy · OpenAI API · React · TypeScript

Personal project · just for fun
Mood journal with astrology-inspired reflections
A playful side project: log your mood in one tap, see it alongside the weather and the moon, and ask an AI guide for an astrology-inspired reflection. Built end to end with React, FastAPI and PostgreSQL, from Google sign-in to payments and deployment.
React · TypeScript · FastAPI · PostgreSQL · OpenAI / Gemini · Stripe
I like owning a feature from the first conversation to production: understanding the problem with Product, designing the data and the workflow, building the backend and the interface, and staying around to see how it's used.
Most of my experience is backend and integration work: workflow engines, background jobs, public APIs and the business rules in between. I still care about the interface on top, because that's where people decide whether the system is any good.
A lot of my work has been modernising production systems that people rely on every day, so I tend to be pragmatic: small, safe steps, honest trade-offs, and nothing that breaks what already works.
I studied Computer Science at the University of Waikato and Communication Engineering at Northeastern University, and I speak English and Mandarin.
Skills
Python, Django, FastAPI, Redis, WebSockets, Elasticsearch, Java
TypeScript, Vue, Nuxt, React, Tailwind CSS
PostgreSQL, MySQL, Docker, NGINX, GitHub Actions, Fly.io
OpenAI API integrations, structured outputs, retrieval (RAG), AI coding agents