Can we build a reactive article in a single HTML file?
Resume
Employment
- Canva
- Senior Software Engineer
- March 2024 - Present
- Software Engineer
- March 2022 - February 2024
- Software Engineer
- January 2020 - February 2022
- Atlassian
- Intern Software Engineer
- November 2018 - December 2019
- Skedulo
- Intern Software Engineer
- January 2017 - November 2018
Education
- University of Queensland
- BSc Computer Science Extended Major
- July 2015 - July 2019
Articles
Projects
Muncoordinated
Model UN committee management service
HTML in Hyde
Meetup
Genre map explorer for Spotify
poppenhuis
Digital dollhouse
Royal Game of Ur positional risk calculator
2019/2022 House of Reps booth swings
Informal voting in the 2019/2022 federal elections
Maximum distance to desired amenities
How to tell someone's age when all you know is their name
Interactive data visualisation
Which groundhog is the best prognosticator?
Color schemes under color vision deficiency
IMC Prosperity 2 visualizer
Foundation shades
Every Fragrance at Once
CSS gradient generator
Named color "wheel"
Sydney traffic light timings
Plotting a black hole
Bank failures
Trorca
Generative music framework
Australian House of Reps division cartograms
Utility wrapper
HCT/Oklab deltas
Investigatory data visualisation
Regional NSW station patronage
Richard Burns Rally telemetry visualizer
DiRT Rally [2.0] pacenotes reader
Wordle solver
meterland
Demos
Hello, Mixbox
Interactive visualisation of paint mixing
Hello, Spectral.js
Another interactive visualisation of paint mixing
Hello, sql.js-httpvfs
Utility wrapper for a SQLite.js VFS client
Hello, Sparks
Utility wrapper for a typeface for creating sparklines in text
Hello, PRQL
Utility wrapper for an alternative SQL syntax
Hello, ln.js
Vector-based 3D renderer
Talks
Intro to Parser Combinators
Lecture
Intermediate Data Visualisation
Lecture & interactive notebooks
Intro to Property Based Testing
Lecture
A tour of Scala
Lecture series & teaching aide
Some JavaScript features
Lecture & interactive notebook
Art
Abandoned projects
opencosmetics.org
Cosmetic alternatives recommendation engine
pollock.ai
AI t-shirt generator
Polling booth voronois
WALS Online language map
Mapper of language linguistic features
Rank Your Music
Resorter of existing Rate Your Music ratings
neoreader
Screenreader extension for Neovim
SyncUQ
UQ-exclusive schedule sharing app
Assorted links
Interests
- Functional programming
- Computational notebooks & literate programming
- PLT
- IDLs & wire protocols
- Situated software / malleable systems / HTML / Old Web
- CS pedagogy
- Color theory
- Urban planning & economics
- Classical guitar
- Badminton
- Board games
- Sim racing / rally