Skip to content
The original rosewood identity: plum, coral, and bronze.
Work

Australian Defence Force

Australian Defence Force

Competency platform at the centre of a Defence training initiative, built on public standards. Search and learning analytics across the framework.

Off-limits

service topology, deployment architecture, schema versions in use, graph internals and traversal operations, xAPI LRS internals and extension choices, how Keycloak was configured, how Azure AD federation worked, internal Defence processes, internal service names, business-rule specifics, contract terms

Role
Principal Engineer
Period
Dec 2024 – Jul 2025
Engagement
embedded
Tech
Vue 3 / Nuxt / Elasticsearch / Keycloak

Seven months as principal engineer on an ADF training platform. Baseline cleared. The brief was tracking demonstration, not completion. That distinction shaped almost every other decision.

Standards over custom

The data layer speaks public standards from IMS Global: CASS for competency modelling, xAPI for the analytics. Picking standards meant the platform spoke a public language from day one rather than a bespoke vocabulary that would need a translation layer at every integration point.

The internals of how the standards are applied stay private.

What it does

Find a person by competency, or a competency by person. Elasticsearch under search, the graph layer in front. Relevance had to absorb the framework's depth, where what mattered for someone's progression wasn't always what matched the keyword.

xAPI gives you the demonstration, not just completion. For Defence, completion was never the question. The question was whether the person could do the thing, and whether you could prove it later to someone who wasn't in the room.

Identity

Keycloak federated to Azure AD so personnel signed in with the credentials they already had. The configuration is the part I can't talk about. Standard Keycloak shape on the public side; the contract takes over from there.

Outcome

Owned the build end to end. Real-database integration tests from day one. Stayed inside the lines of what adjacent teams owned.

Seven months. Handed over running.

Role
Principal Engineer
Period
Dec 2024 – Jul 2025
Engagement
embedded
Tech
Vue 3 / Nuxt / Elasticsearch / Keycloak / Azure AD / xAPI / CASS (IMS Global)

© 2026 Robert Andrew, Melbourne, Australia.

Robert Andrew

Design. Build. Ship. Repeat.