Senior Software Developer based in Sydney, Australia with 20+ years of experience building robust, maintainable systems on the JVM. I care about clean architecture, clear code, and bringing teams along for the journey — not just shipping features, but building shared understanding and raising capability along the way.
Open to senior or lead engineering roles — remote or hybrid, Sydney.
Practices: Clean Architecture · Domain Modelling · TDD/BDD · REST/HATEOAS · ReBAC · Agile/Scrum · Technical Mentoring
Laptime Insights (WIP)
A dashboard for Assetto Corsa Competizione lap time data, integrating directly with the sim's UDP broadcast telemetry protocol. Practising clean architecture with Kotlin, Ktor, Exposed, and WebSockets.
A documented coding exercise following the incremental design and implementation of a configurable data processing pipeline. As much a design and architecture writeup as it is code — each stage lives in its own branch. Start at latest for the full picture.
A reference implementation of a REST API with HATEOAS-driven navigation, built with Spring Boot. Paired with a Spring Boot + React template.
Forked the JSONata Java library to replace floating-point arithmetic with BigDecimal, solving binary precision issues in expression evaluation.
A small web app for tracking leave balances and projecting future holiday availability. Hosted on GitHub Pages.
I write about software design, Kotlin/Java, and development practice.



