Seven years,
as a trace
Machine learning in Kathmandu, document extraction in Canberra, data platforms in Sydney, and an AI team in Wollongong. Laid out the way the systems I build are instrumented — because the two things a résumé cannot show are what ran at the same time, and why anything was decided the way it was.
Every entry opens on the decision, not the task. 15 of 19 are verified against the code, the pull requests and the configuration; the rest say plainly that they are not.
What I actually believe about building this
A system that cannot say “I don’t know” is worse than no system
Fail closed to the known-good path, not to “off”
Ship the switch before the thing it switches
Measure before you design, and let the measurement win
Engineer against silent failure specifically
Write down why, including what you got wrong
The trace
- Machine learningFeb 19zoomed to Fusemachines Nepal · 4 projectsAug 22
- SoftwareJune 22zoomed to WebTec Solutions · 1 projectJan 23
- DataNov 22zoomed to CloudShuttle · 2 projectsSept 25
- AI engineeringJuly 25zoomed to Accelo · 9 projectsOct 26
- Study
- SoftwareFeb 26zoomed to Opal Cabs · 3 projectsOct 26
Wollongong, NSW · Senior AI/ML Engineer → promoted to Tech Lead, AI Team
Accelo
Joined on the platform side — getting models out of notebooks and onto ECS, and standing up change-data-capture into ClickHouse. Moved onto the Forecast product's AI team in early 2026 and went from shipping a chat agent, to owning the platform underneath every agent, to leading it. The arc in one line: make one model serve, make one agent work, make the agent platform trustworthy, make it safe to sell.
- Tech Lead for the AI team, owning end-to-end delivery of production AI products
- Replaced three hand-wired agents with a declarative harness — an agent is now one markdown file — and rolled it out per-company behind a fail-closed switch with nothing on the other side
- Built the observability platform: self-hosted Langfuse on ECS over PrivateLink to ClickHouse Cloud, with salted tenant masking gating every vendor-bound trace
- Shipped the commercial gate — entitlement, a transactional credit ledger, and a budget check that fails open on purpose
- Reversed three tickets with measurement: trace sampling, Aurora capacity, and the Langfuse worker's real constraint