Waqas Bajwa

I turn design files into components that work for everyone, including the parts the design missed.

Public Sans Light, 58px
line height 1.08, tracking -2%
One H1 per page.
Font switches to Atkinson Hyperlegible, made for low vision readers.

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.

Read the V/Line case study
buttons 48px high
clears WCAG 2.5.8 (24px)
Text contrast 15.5:1.
Focus ring 4px with a white gap, visible on any background.
The design file had one search state. The shipped component adds a visible label, a focus ring, keyboard navigation through suggestions, wrapping for long names and an announced result count.

Selected work

V/Line Design System

2026 to now

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.

  • Compared five date pickers in a spike, then built the journey planner's accessible date picker on Cally
  • Wrote a script that runs axe through BrowserStack and writes each result into the component's docs
  • Found why at least 20 colour tokens from the design failed contrast once built, and reset them with the tester
  • Built a table of contents from the headings editors already write, replacing two widgets they had to keep in sync by hand
  • Tailwind CSS
  • Alpine.js
  • TypeScript
  • Vite
  • Pattern Lab
  • Kentico Xperience
Read the case study
The table of contents had no design. I built it from the CMS headings, so editors stopped maintaining two widgets by hand.
Playlist changes are announced to screen readers. The carousel never autoplays.

At CHOICE, 2022 to 2025

Staff Sales Platform

Admin and user dashboards for an internal sales app: sale setup, winner generation, bidding, payments and collection.

  • React
  • Next.js
  • TypeScript

Data Management Platform

Real-time editing on large datasets and an image manager built on native HTML5 drag and drop.

  • Vue 3
  • GraphQL
  • Azure Functions

Brand Reliability data visualisation

An API-driven comparison of brand reliability in Sitecore, with accessible tabs, filters and charts.

  • Razor
  • Sass
  • JavaScript
  • Sitecore

Product reviews with Bazaarvoice

A custom review system on product pages. I designed the API workflows with the backend team.

  • JavaScript
  • Sitecore

In my own time

Umbraco 16 and Next.js 16

Umbraco on .NET 9 as a headless CMS, with Next.js and React 19 rendering through ISR. Watch the demo

  • Next.js
  • React
  • TypeScript
  • Umbraco

How I work with AI

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

Experience

Frontend Developer, V/Line

Mar 2026 to now

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

  • Built 45+ accessible components to WCAG 2.2 AA in Pattern Lab, each with a contract and docs the backend team works from.
  • Compared five date pickers in a spike, then built the journey planner's accessible date picker on Cally. It has passed testing.
  • Found what slowed the first render in Lighthouse, including the icon font. Sized icon boxes and critical CSS took CLS from 0.244 to 0 and Speed Index from 6.1 s to 1.3 s.
  • Wrote a script that runs axe through BrowserStack and writes the results into each component's docs.
  • Lead frontend estimation and spikes, and train developers, BAs and content editors on the system.

Frontend Developer, CHOICE Australia

Jan 2022 to Nov 2025

I built consumer and internal features for platforms serving 400,000+ users, in Agile squads with UX, product, QA and backend.

Delivered

  • Built the Brand Reliability tool in Sitecore: accessible tabs, filters and charts, driven by APIs, that help consumers compare brands.
  • Built admin and user dashboards for the Staff Sales Platform in React, Next.js and TypeScript, from sale setup to bidding, payment and collection.
  • Built a data platform in Vue 3 and GraphQL for product test data in Cosmos DB, with real-time editing and a drag-and-drop image manager. Lighthouse showed the image pages were slow, so I lazy loaded images below the fold.
  • Designed the Bazaarvoice review workflows with backend developers and built the review components on product pages.
  • Extended the Storybook design system, wrote Cypress tests, reviewed code, and released through TeamCity and Octopus Deploy.

Founder, Wit Web Solutions

Dec 2019 to now, part time

I run a small web business, taking client sites from requirements to hosting and support.

Delivered

  • Built custom WordPress themes and multilingual sites, including sites in Urdu.
  • Built a multithreaded Python scraper of Google Patents for a PhD research project, deployed to a VPS.
  • Set up hosting, domains and email for clients, and showed them how to manage their own content.

Web Content Admin Assistant, RACGP

Aug 2017 to Jan 2022

I built and maintained pages, components and forms in Kentico for the college of general practitioners, a regulated healthcare body.

Delivered

  • Built Kentico components and templates from design to release, and registered them for content teams to reuse.
  • Built complex forms with conditional fields and validation, and reports from their submissions.
  • Built and maintained the RACGP Honour Board and the Fellowship Policy Framework.
  • Migrated content from Umbraco to Kentico with no data loss.

Skills

The tools I work in most, then the wider set I have shipped with.

  • React
  • TypeScript
  • Next.js
  • Vue 3
  • Alpine.js
  • Tailwind CSS
  • Kentico Xperience
  • Sitecore
  • WCAG 2.2 AA
  • Storybook
  • Pattern Lab
  • Figma
  • GitHub Copilot
  • Claude
  • MCP
  • Cypress

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

See where I used each tool

Frontend

Design systems

Accessibility and testing

Delivery

Backend, APIs and CMS

AI-assisted development

  • GitHub Copilot, used in V/Line
  • MCP (design tokens and scaffolding), used in V/Line

Analytics, monitoring and search

About

Portrait of Waqas Bajwa

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.

  • Bachelor of Software Development, Charles Sturt University 2019
  • Diploma of Information Technology, Melbourne Polytechnic 2015
132px, greyscale
so the page keeps one ink colour
alt="Portrait of Waqas Bajwa"

Contact

I am based in Melbourne. Email is the best way to reach me.