Selected Work

Migrating from runtime CSS-in-JS to build-time styling

At Atlassian, the design system relied on runtime CSS-in-JS, which introduced performance overhead across large applications like Jira and Confluence.

I contributed to a migration towards a build-time styling approach, shifting styles to statically analyzable CSS. This required evolving component patterns, ensuring compatibility with theming, and supporting adoption across multiple teams and products.

A key part of the work involved coordinating rollout across large codebases, balancing performance improvements with the need for safe, incremental adoption.

Impact

  • Reduced component render times
  • Improved p90 time-to-first-paint across products
  • Established more maintainable and predictable styling patterns at scale

Scaling theming with design tokens

I contributed to the rollout of design tokens across Atlassian's design system, enabling consistent theming across products including Jira and Confluence. This work helped support the introduction of light and dark modes, while ensuring tokens could evolve safely over time without breaking existing usage.

Beyond implementation, this involved thinking through versioning, backwards compatibility, and how to roll out changes across a large and diverse product ecosystem.

Focus areas

  • Token adoption across products
  • Supporting light and dark themes
  • Safe evolution of tokens at scale

See: Atlassian Design System - Design Tokens

Building a cross-product navigation system

I worked on a new navigation system designed to be used across multiple Atlassian products, including Jira and Confluence. My focus was on building composable layout and navigation primitives that could be consistently adopted while still allowing flexibility for different product needs.

This included handling complex interaction patterns (such as nested actions and popovers), while ensuring accessibility and a cohesive user experience. A key challenge was designing components that worked well across a wide range of use cases without becoming overly rigid or overly flexible.

Focus areas

  • Composable layout and navigation primitives
  • Accessibility and interaction design
  • Balancing consistency with product-level flexibility

See: Atlassian Design System - Navigation System

Earlier work

Product-focused work from earlier in my career, building customer-facing applications and frontend architecture.

BetEasy SPA
view project

BetEasy Component Library

Style Guide for the re-brand of beteasy.com.au

BetEasy SPA
view project

BetEasy Rebuild

Rebuild of beteasy.com.au as a React SPA.

NAB Yourself
view project

NAB Yourself

A web app that utilises facial and voice recognition for NAB.

Innovation Council
view project

DAN Innovation Council

A CMS website for the Dentsu Aegis Network's Innovation Council.

Holden
view project

GM Holden

Responsive redesign of Holden.com.au

Console Brawl
view project

Console Brawl

An iOS/Android app I built as a side project.

Members Lounge
view project

Fernwood Members' Lounge

A web app for Fernwood gym members.

Fernwood Online
view project

Fernwood's Online Programs

A web app for Fernwood's exercise and nutrition programs.