About

Where it started

I started writing code in 2018, entirely self-taught before formalizing with a Bachelor of Information Technology at the University of Canberra. The self-taught path instilled a habit I still rely on: figure out the actual problem before reaching for a tool.

Six years later, I've shipped 20+ projects across SaaS, healthcare, e-commerce, and internal tooling — from a campaign platform that handled 20,000 sign-ups in two weeks to a messaging infrastructure running millions of messages per day across emerging markets at Telerivet.

I work remotely, across time zones, as an independent contractor. My clients are founders and small product teams who need a senior engineer who can own the full scope — architecture, build, and deployment — without a handoff between roles.

What I work with

Frontend

React, Next.js, Tailwind CSS

Backend

Node.js, PostgreSQL, GraphQL, REST

Infrastructure

AWS (EC2, Lambda, RDS, CloudFront), Terraform

AI & ML

OpenAI, Anthropic, Vector Search, RAG pipelines

How I work

01

Discover

A working session to understand what you're building, for whom, and what constraints actually matter. No intake forms — a real conversation.

02

Plan

Architecture, scope, and a written plan before any code is written. You get a document you can hold me to, whether or not we work together.

03

Build

Deployed slices on a regular cadence — working software to react to, not status updates. Async by default, calls when they matter.

04

Ship

Production cutover, monitoring, and a runbook your team can act on. A clean handover or a retainer — your call.

What I believe about software

Decisions in writing. Every architecture and scope decision gets written down. It removes ambiguity, creates accountability, and means the next engineer can understand why things are the way they are.
Second year matters. Anyone can ship fast. I build with the second year in mind — structure that makes the codebase easier to work in over time, not just on launch day.
Remote done properly. Async by default, overlapping calls when needed. Every engagement I've taken on has been fully remote, and communication is treated as a first-class deliverable.
One engineer, full ownership. I take on work I can deliver personally — no handoffs between roles, no account managers in the middle. You get one engineer who owns the architecture, implementation, and deployment.