Staff Sales Platform
Admin and user dashboards for an internal sales app: sale setup, winner generation, bidding, payments and collection.
- React
- Next.js
- TypeScript
Senior Front-End Developer in Melbourne.
Currently the sole front-end engineer on the V/Line website rebuild, a network that carried more than 26.4 million passenger trips in 2024-25. Before V/Line, I spent nearly four years at CHOICE building accessible web components for high-traffic public platforms.
V/Line, Victorian Government. Sole frontend developer.
I am the only frontend developer on the rebuild of the V/Line website, moving it from Kentico Portal Engine to Kentico Xperience 13 and to WCAG 2.2 AA. I built its 45+ components from scratch for the Design System. The designs were finished before I joined and the team has no designer, so the gaps in them come to me.
At CHOICE, 2022 to 2025
Admin and user dashboards for an internal sales app: sale setup, winner generation, bidding, payments and collection.
Real-time editing on large datasets and an image manager built on native HTML5 drag and drop.
An API-driven comparison of brand reliability in Sitecore, with accessible tabs, filters and charts.
A custom review system on product pages. I designed the API workflows with the backend team.
In my own time
Umbraco on .NET 9 as a headless CMS, with Next.js and React 19 rendering through ISR. Watch the demo
A recipe book app I built so my family could keep and share their recipes, with sign-in and likes. Read about ReciPen Open the live app (opens in a new tab)
AI writes a first draft fast. Years of building front ends by hand taught me what to check before it ships.
I use it where it saves time without lowering the bar: turning design tokens into code and scaffolding components straight from the design. Before it writes anything, I set the rules as skills and guardrails the AI has to follow: strictly semantic HTML, keyboard navigation, strict types, shared utilities instead of copies, no hard-coded values, and a fallback when a script fails. Then I review what it produces against those rules. When something falls short, I ask it to fix the code or explain its reasoning, and I check the result with automated accessibility tests using axe.
I use the same approach at home to build browser games, including a Three.js parkour game and a platformer my son came up with. See the five games
I am the only frontend developer on the rebuild of the V/Line website, building design system from scratch, working with a Tech Lead, four developers, a BA, a tester and product. I own the frontend, from the Figma designs to the templates the backend team builds pages with.
Delivered
I built consumer and internal features for platforms serving 400,000+ users, in Agile squads with UX, product, QA and backend.
Delivered
I run a small web business, taking client sites from requirements to hosting and support.
Delivered
I built and maintained pages, components and forms in Kentico for the college of general practitioners, a regulated healthcare body.
Delivered
The tools I work in most, then the wider set I have shipped with.
Also used Figma MCP, Sass, Vite, Grunt, Node.js, Git, REST APIs, JSON, GraphQL, .NET and Razor, Azure Functions, Firebase, Python, WordPress, Umbraco, CI/CD, TeamCity, Octopus Deploy, Playwright, BrowserStack, axe, Datadog, Google Analytics, Lighthouse, performance optimisation, SEO, Jira, Confluence
How I work AI-assisted development, quality assurance, Agile and Scrum, squad-based delivery, cross-functional teams, stakeholder engagement, training users
I started in IT support, moved into web content at RACGP, and have built front ends full time since. The part I enjoy most sits between design and backend: deciding how a component should behave, then making it work for everyone.
Outside work I play FIFA with my son, build forts with my daughters, and look for quiet beaches.