Skip to main content

I build product platforms, shared APIs and the systems that help teams deliver them.

I’m a senior software engineer in Melbourne, with over a decade of experience across property technology and defence. At Domain, my work connected customer-facing products with shared GraphQL APIs, design systems and delivery infrastructure. Today, I build web and listing experiences at CoStar Group.

Outside that work, I’m exploring local-first AI gateways, context compression in Rust and Python, and Model Context Protocol tooling. Earlier simulation work for the New Zealand Defence Force, and ongoing reserve service, continue to shape how I lead and take responsibility for outcomes.

How I work

Build for the next team.

Shared contracts, reusable components and clear ownership make systems easier to change together.

Put confidence into delivery.

Automated checks and preview environments turn quality into a repeatable part of shipping.

Keep the outcome in view.

Work closely with product and design, ship in small steps, and take responsibility beyond the code.

Toolkit

Skills in context

The tools I use most, where I’ve applied them, and what I’m exploring now.

Primary

Product interfaces, shared APIs and design systems at Domain and CoStar Group.

  • TypeScript / JavaScript
  • React / Next.js
  • Node.js / GraphQL
  • Design systems / Accessibility

Production experience

Service delivery, cross-platform products and automated quality checks at Domain.

  • AWS ECS / Fargate / CDK
  • Docker / Jenkins / CI/CD
  • Jest / Cypress / Visual regression
  • React Native / Expo

Current exploration

Local-first AI gateways, context compression and developer tooling.

  • Rust / Python
  • AI systems / LLM integration
  • Model Context Protocol (MCP)

Career

Experience

Product engineering, platform foundations and earlier work in defence. Open a role for delivery details.

Senior Software Engineer

CoStar Group

Aug 2025 – Present

1 year 4 months · Full-time

Melbourne, Victoria, Australia

Building customer-facing web and listing experiences with React and Next.js, in partnership with design and product teams.

Show details for CoStar Group
  • Engineering high-visibility, premium customer-facing web surfaces and listing experiences using React 18/19 and Next.js 15.
  • Collaborating closely with design, product, and cross-functional teams to design scalable platform architectures and ensure visual excellence.
  • React
  • TypeScript
  • Next.js
  • Node.js
  • GraphQL

Senior Software Engineer

Domain

Feb 2020 – Aug 2025

5 years 7 months · Full-time

Melbourne, Victoria, Australia · Hybrid

Led work across shared GraphQL APIs, design systems and delivery infrastructure. Progressed through four roles, from Frontend Developer to Senior Engineer.

Show details for Domain
  • Architected and maintained a multi-client GraphQL BFF (Apollo Server 4 / Express / Next.js) serving web, iOS, and Android clients simultaneously, implementing field-level authorization directives and OpenAPI-to-TypeScript codegen to eliminate contract drift.
  • Led cross-platform delivery of real-time agent productivity products, establishing unified type-safe codegen pipelines, visual regression testing (Percy), snapshot testing (Roborazzi), and 80%+ coverage gates.
  • Designed and maintained two composable design system monorepos (using Lerna and Changesets) supplying 30+ React component packages with sub-path exports and Emotion CSS-in-JS design tokens, consumed across multiple internal products.
  • Owned end-to-end CI/CD for a suite of containerized Node.js services on AWS ECS Fargate, authoring multi-stage Dockerfiles, Jenkins pipelines (covering unit, integration, and schema checks), and AWS CDK deployments with per-PR preview environments.
  • Promoted from Frontend Developer to Senior Engineer across four consecutive roles, leading frontend development for Agent Solutions and Realtime Agent products.
  • React
  • Node.js
  • TypeScript
  • GraphQL
  • AWS
  • Docker
  • CDK
  • Jenkins
  • Lerna
  • Cypress
  • Jest

Frontend Developer

Real Time Agent

Aug 2018 – Feb 2020

1 year 7 months · Full-time

Melbourne, Australia

Built real-time auction and offer interfaces, with components and state patterns adopted across broader platforms after acquisition.

Show details for Real Time Agent
  • Built real-time auction and offer-management interfaces for real estate agents using React, Node.js, and WebSockets.
  • Established foundational components and real-time state synchronization patterns adopted across broader platforms after company acquisition.
  • React
  • Node.js
  • JavaScript
  • WebSockets
  • CSS-in-JS

Software Developer

Future Golf

Mar 2025 – Oct 2025

8 months · Casual

Remote

Delivered full-stack golf platform features and automated CI/CD to improve deployment reliability and release cadence.

Show details for Future Golf
  • Delivered full-stack features for a golf-tech platform on a casual contract basis.
  • Improved deployment reliability and release cadence by setting up automated CI/CD pipelines.
  • React
  • Node.js
  • TypeScript
  • CI/CD

Developer / Simulation & Process Modeller

New Zealand Defence Force

Nov 2015 – Jul 2018

2 years 9 months · Full-time

Wellington, New Zealand

Developed operational tools, simulations and logistics models to inform defence capability decisions.

Show details for New Zealand Defence Force
  • Developed internal tooling and front-end systems for defence operations.
  • Modelled operational processes, simulations, and interactive transit/logistics tools to inform capability decisions.
  • JavaScript
  • Simulation
  • Data Visualization
  • Process Modelling

Army Reservist

NZ Army

Oct 2007 – Present

19 years 2 months · Reserves

Wellington, New Zealand

Ongoing reserve service alongside a technical career, developing leadership, discipline and mission-focus.

Show details for NZ Army
  • Developed leadership, discipline, and mission-focus alongside a technical career.