Works
RAC WA
Senior Software Engineer · 2022 – present
Digital membership card
Tech lead of a team of three, and the myRAC team’s technical representative, on the digital membership card that members add to Apple Wallet or Google Wallet. Decided the technical approach, wrote the solution intent, presented it for review by other teams’ technical representatives, ran the technical alignment meetings and deployed the final solution. Within three months of launch, 96% of members who logged in to myRAC had added the card to a wallet.
myRAC re-platform and redesign
Rebuilt the logged‑in myRAC experience during RAC’s move from Sitecore and ASP.NET pages to its Digital Experience Platform (Contentful, Next.js, GraphQL, Azure API Management, C# Function Apps). Designed the new product pages from UI components that hold no business logic, so the same components and page layouts serve roadside assistance, insurance, and finance applications and quotes.
- C#
- Next.js
- GraphQL
- API Management
- Contentful
- Sitecore
Roadside Assistance self-service
Led a team of three building the online cancel Roadside Assistance journey, which replaced a phone call to the contact centre, and wrote about 90% of its frontend and backend. Maintain and extend the team’s other self‑service journeys, digital roadside assistance (location‑based patrol dispatch) and update my vehicle, with new features and accessibility fixes.
Website search migration
Moved search on rac.com.au from Azure Search to SearchStax‑hosted Solr: reindexed the site, changed the frontend to query the new engine, and secured access with Azure network rules and IP allowlists. Cached the first result set in the browser so that category clicks no longer re‑run the search.
- Solr
Autoservice registration lookup
Added registration lookup to the Autoservice booking app: upgraded the Angular app to a supported version, integrated a vendor’s lookup API through the existing Azure Function App, and built the new step. Members now enter a rego instead of choosing make, model and year. Drop‑off during booking fell by about 57%.
- Angular
Fugro
Senior Innovation Engineer, promoted from Software Engineer · 2006 – 2022
Live video platform for ROV inspections
Designed and built, as lead of a small team of three, a live video platform for remote ROV pipeline inspections. Owned it end to end: the design, most of the frontend and backend code, the AWS CDK infrastructure, the CI/CD pipeline, deployment and maintenance. Promoted to Senior Innovation Engineer after delivering it.
- TypeScript
- React
- Material UI
- DynamoDB
- CloudFront
- Elemental
- AWS CDK
Survey data exchange
Built the frontend of a data exchange for offshore survey data, my last project at Fugro: a dashboard that shows multibeam, pipeline inspection and other survey data as vessels upload it to S3 and lets data processors download it in batches, process it and upload the results (React, TypeScript). Started it from aws‑serverless‑spa‑template, a personal React, Lambda and CDK starter published on GitHub, and set up its CI/CD pipeline.
- TypeScript
- React
- Lambda
- S3
Vessel activity reporting
As Fugro modernised its stack from desktop software to the cloud from 2018, built the UI for a vessel activity reporting system, set up its CI/CD pipeline, and contributed to its API and AWS infrastructure. A daily Excel report of job progress and incidents, uploaded to S3, is parsed into a database through Entity Framework Core and served by a .NET Core API in containers (React, TypeScript, Docker).
- TypeScript
- React
- .NET
- Entity Framework
- S3
- Docker
Subsea pipeline inspection
Worked with two other developers on the Unity application for a subsea pipeline inspection system developed by teams in Perth and Brisbane. ROVs recorded high‑resolution photos and point clouds of the pipeline, an ML point classifier used both to identify freespans and damage, and the Unity app rendered the data for data processors to work through by hand.
- Unity
Starfix.NG data acquisition suite
Worked on the Starfix.NG multibeam solution, which Fugro’s survey vessels used to collect multibeam sonar data in the search for flight MH370 for the Australian Government from 2014.
- C#
- C++
Personal projects
url-shortener
System design practice, written by hand
- .NET
- Container Apps
- GitHub Actions
Development environment
Dotfiles and Neovim configuration
- TypeScript
- C#
- GitHub Actions