Senior Software Developer

Sydney, Australia (open to remote or hybrid)

See LinkedIn for references

Summary

Senior Software Engineer with 20+ years of experience designing and delivering scalable JVM-based systems using Java, Spring Boot, and Kotlin. Known for building software that stays clean, adaptable, and maintainable long after the first release — with a strong focus on architecture, engineering discipline, and code that communicates clearly.

I care about creating systems that teams can move quickly and confidently within: well-structured codebases, consistent patterns, pragmatic design decisions, and engineering practices that reduce complexity instead of adding to it.

Beyond hands-on development, I’ve built a reputation as a highly collaborative engineer who works closely with developers, product teams, and stakeholders to shape solutions together. I enjoy mentoring, lifting engineering standards, and helping teams build shared ownership and momentum — not just shipping features.

I’m most energised by product-focused teams that value thoughtful engineering, continuous improvement, and high-quality delivery.

Currently exploring senior and lead engineering opportunities with modern, high-performing teams — either hybrid in Sydney or fully remote.

Skills

Languages & Frameworks

Kotlin, Java, Spring Boot, Ktor, Exposed, React, TypeScript, Node.js, Claude Code, Copilot

Data

PostgreSQL, Apache Spark, JPA, Hibernate, SpiceDB

Architecture & Design

Clean architecture, domain modelling, REST/HATEOAS, ReBAC, CRDT

Testing

TDD, BDD, JBehave, JUnit

Tooling & Platforms

Git, Gradle, Maven, IntelliJ IDEA, Renovate

Practices

Agile/Scrum, technical mentoring, code review, pair programming, AI assisted development

Projects & Writing

Blogprule.github.io/pauls-blog Technical writing covering Kotlin/Java/Programming, software design, and development practice.

GitHubgithub.com/prule

  • Agent Harness Comparison (WIP) - Experimenting with agent harnesses (eg OpenSpec) looking for sustainable ways to build and maintain software efficiently with the assistance of AI. Claude Code, OpenSpec, Vue, Supabase

  • Laptime Insights (WIP) — A personal project building a dashboard for Assetto Corsa Competizione lap time data. Practising clean architecture with Kotlin, Ktor, Exposed, and WebSockets, integrated with sim racing broadcast telemetry. Claude Code, Gemini, React, Kotlin, Ktor, Exposed, WebSockets, UDP, Gradle multi module, Github Pages

  • Data Processing Experiment — A documented coding exercise following the incremental design and implementation of a configurable data processing pipeline. Equal parts design challenge and architecture writeup.

  • REST/HATEOAS Example — A reference implementation demonstrating a REST API with HATEOAS-driven navigation, paired with a Spring Boot + React template.

  • JSONata-Java Fork — Forked the JSONata Java library to replace floating-point arithmetic with BigDecimal, solving binary precision issues in expression evaluation.

  • Banking example - A hands-on Java Spring Boot coding exercise designed to explore concurrent data modifications, database locking strategies, and AI assisted coding.

  • Video aggregator - Gives you a chronological, filtered YouTube feed instead of an algorithmic one. Organise subscriptions under Sources > Topics > Channels, apply hierarchical include/exclude rules, and pivot your timeline by auto-matched tags.

  • Intention Horizon - A local-first habit tracker: define intentions, group them by category, tick them off each day, and watch your count move against a target you set — N completions over M days.

  • Catchup - helps groups of friends coordinate social catch-ups — proposing dates, voting on venues, and locking in events — without the chaos of group messaging.

  • Leave planner - Plan your annual leave with ease.

  • Countdown - From weddings and birthdays to product launches and holidays, this free online countdown creator lets you build and share beautiful, animated timers in seconds. Customize backgrounds, choose the perfect font, and share a link with anyone, on any device.

  • Daily motivation quotes - Daily motivation and life tips.

  • Toolbox - A collection of developer tools implemented in the browser.

  • And more…​ see https://prule.github.io/pauls-blog/page/projects/

Education & Certifications

Bachelor of Technology, Information Engineering — Massey University (1990–1993)

Sun Certified Java Programmer — Sun Microsystems (2001)

Certified ScrumMaster — Scrum With Style (2011)

Experience

Senior Software Developer — OneTeam Services

2024–2026

OneTeam Services was building a SaaS platform for business process automation, enabling organisations to define and run complex workflows through a no-code workspace model.

Joined early in the platform’s development to help design and build the backend from the ground up. Core contributions included:

  • Flow engine - Enabled dynamic, user-configurable automation by architecting a high-performance Kotlin engine with integrated JSONata expression evaluation, supporting reliable execution of complex multi-step sequences.

  • REST API and Core data model - Delivered a highly responsive user experience on the React frontend by implementing a low-latency, real-time workflow configuration and form submission API using Kotlin, Ktor, and Exposed.

  • Collaborative editing - Unlocked real-time co-authoring capabilities across workspace documents by integrating Automerge CRDT, guaranteeing conflict-free concurrent editing with zero data loss.

  • Permissions - Enforced enterprise-grade security and low-latency isolation by deploying a SpiceDB relationship-based access control (ReBAC) system integrated with PostgreSQL Row-Level Security (RLS).

  • Architecture uplift - Improved test coverage and code maintainability by leading a migration to Clean Architecture, object-oriented design patterns, and HATEOAS conventions, ensuring API consistency.

  • Developer tooling - Accelerated developer velocity and test reliability by building a custom debug and simulation harness to quickly validate complex flow execution behaviors.

  • Dependency management - Reduced security risk and technical debt by automating package upgrades with Renovate, keeping dependencies continuously up to date.

  • Code quality - Streamlined code review cycles and eliminated formatting disputes by standardizing the codebase on Ktfmt, reducing visual noise in pull requests.

Tech stack:

  • AI Tools: Copilot, Rovo, CodeRabbit

  • Project management: JIRA, Confluence

  • Languages and frameworks:

    • Kotlin, KTOR, Exposed, REST, React, Typescript, JUnit

    • SpiceDB, Automerge, Renovate, PostgreSQL

  • Patterns: Clean architecture, Hateoas

Senior Software Developer — Prospection

2019–2024

Prospection | Health Data Analytics Platform

Senior Software Engineer / Team Lead

Contributed to the evolution of a health data analytics platform over a five-year tenure, scale-proofing data infrastructure, pipeline architecture, and core product capabilities. Led a three-developer team to deliver highly configurable, maintainable, and scalable data solutions.

  • Generative AI capability - Enabled intuitive, natural language data exploration for healthcare clients by co-developing a production-grade Generative AI assistant integrated with the OpenAI API.

  • Pipeline architecture - Eliminated bespoke per-client development overhead by designing a standardized data format and a configurable task pipeline; implemented dependency-aware concurrent execution to maximize data throughput and minimize processing times.

  • Configurable data transforms - Decoupled routine data mapping from deployment cycles by prototyping a dynamic transformation framework; developed scalable Apache Spark pipelines to seamlessly standardize and process multi-format incoming datasets.

  • Platform reliability - Guaranteed 100% platform uptime during data refreshes by implementing an A/B schema switching mechanism for seamless background data loading without service interruption.

  • Data loading performance - Accelerated load times and simplified troubleshooting by prototyping a simplified data-loading flow utilizing natural business keys, reducing system complexity and debugging overhead.

  • Operational visibility - Reduced pipeline management overhead by building a React-based monitoring dashboard, providing the engineering and operations teams with real-time pipeline observability and control.

Tech stack:

  • AI Tools: Copilot, OpenAI API

  • Project management: JIRA, Confluence

  • Languages and frameworks:

    • Java, Kotlin, Spring Boot, React,

    • PostgreSQL, OpenAI API, Apache Spark


Senior Software Developer — Mobiusly

2014–2018

Mobiusly is a boutique software consultancy delivering web, iOS, and Android products for clients across financial services, education, health, retail, and telecommunications. Worked as a senior full-stack developer across multiple client engagements, taking responsibility for solution architecture, design, development, and testing within Agile/Scrum teams.

Beyond client delivery, contributed to the consultancy’s own capability by building internal tools, reusable services, and project templates — reducing ramp-up time on new engagements and improving consistency of delivery across the team.

Stack: Java 8, Spring Boot, React, JavaScript, HTML5, CSS, PostgreSQL, Heroku, AWS, REST, HATEOAS, Microservices, Swift, iOS, Android, Node.js, Ember, Gradle, Git

Software Developer — Reserve Bank of Australia

2014

Short-term engagement as part of a Scrum team developing file processing services for batch data loading. Contributed to solution architecture, design, development, and testing, and participated actively in sprint ceremonies — including demos and stakeholder feedback sessions.

Stack: Java, Spring, JPA, JBehave, JUnit, TDD, Maven, Tomcat, Git


Software Developer (Contract) — Department of Premier and Cabinet, NSW Government

Mar 2013–Feb 2014

Contracted to design, build, and test an extranet application for collecting progress reports from agencies reporting to cabinet. Beyond the application itself, established the team’s entire software development capability from the ground up — setting up version control, build tooling, repository management, a development server with LDAP, email and database, and a full automated testing stack including BDD and Selenium-based acceptance tests.

Stack: Java 7, Spring, Spring Security, Spring Data, JSF2, PrimeFaces, JPA2, MSSQL Server, JBehave, Selenium WebDriver, Thucydides, JUnit, Maven, Nexus, Tomcat, Git, JIRA


Software Engineer — VMware / SpringSource

Aug 2012–Feb 2013

Part of the SpringSource R&D team in Sydney, working on Elastic Runtime — a next-generation, fault-tolerant, automatically elastic Platform as a Service built on Linux. A complex distributed system involving a scalable column store, request routing, horizontal scaling, and sophisticated security mechanisms.

Contributed to the design and implementation of key platform functionality, including a Netty-based networking layer for inter-component request routing. Also introduced and implemented JBehave acceptance testing for the network component, using REST mocks to verify behaviour in isolation. Stood in as ScrumMaster during the team lead’s absence, facilitating release planning, sprint planning, reviews, and retrospectives.

Role ended when the Australian office closed following acquisition.

Stack: Java, Spring, Netty, REST, LXC, Linux, JBehave, JUnit, TDD, Git


For earlier career history, see LinkedIn

If you enjoyed this article, feel free to support my work on Ko-fi!

Support on Ko-fi