Skip to content
View prule's full-sized avatar

Block or report prule

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
prule/README.md

Hi, I'm Paul 👋

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.

Blog


🛠️ Tech I work with

Languages & Frameworks Kotlin Java Spring Boot Ktor React TypeScript

Data PostgreSQL Apache Spark

Practices: Clean Architecture · Domain Modelling · TDD/BDD · REST/HATEOAS · ReBAC · Agile/Scrum · Technical Mentoring


🚀 Projects

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.

🌐 laptimeinsights.com

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.


✍️ Writing

I write about software design, Kotlin/Java, and development practice.

  • 📝 Blog — longer-form technical posts
  • 📬 Substack — newsletter
  • 📖 Medium — cross-posted articles

📬 Connect

LinkedIn Blog CV

Pinned Loading

  1. laptime-insights-server laptime-insights-server Public

    REST API server for LapTimeInsights.

    Kotlin 1

  2. acc-client acc-client Public

    A Kotlin client for Assetto Corsa Competizione (ACC) Dedicated Server UDP communication. Used by LapTimeInsights.

    Kotlin

  3. rest-hateoas rest-hateoas Public

    Basic application of Spring Boot, Spring Data, Query DSL with Hateoas

    Kotlin 1

  4. data-processing-experiment data-processing-experiment Public

    See branch "latest" - An experiment to get practice in software design, data processing, and writing/documentation

    5

  5. spring-boot-react-hateoas-template spring-boot-react-hateoas-template Public

    A skeleton project for starting spring-boot, REST (Hateoas), React.js applications.

    Java 6 3

  6. jsonata-java jsonata-java Public

    Forked from dashjoin/jsonata-java

    This is a fork of jsonata-java that uses BigDecimal for all numeric operations instead of floating-point types. This change addresses binary arithmetic precision issues (e.g., 0.1 + 0.2 != 0.3).

    Java