COME AND TAKE IT #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 Hello, protobuf.js #Talks Reactive HTML notebooks October 2024 Intro to Parser Combinators May 2020 Intermediate Data Visualisation Talk & interactive notebooks October 2023 Intro to Property Based Testing October 2019 A tour of Scala Lecture series & teaching aide September 2019 - December 2019 Some JavaScript features Talk & interactive notebook #Art & assets cccbd whale choir explorations chocolate matter cursors BeOS icons DoCoMo P903iTV visual assets #Abandoned projects favicon.garden Favicon API and cache 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 RECEIPT PARTY #Assorted links Factorio Galaxy of Fame Papers I like RSS/Atom feeds I follow Free ideas Lighthouses in New South Wales Hackathon stacks Safety in types Everything as hooks Building a decent tech talk Haskell operators The story of Muncoordinated Universal Function Call Syntax in Scala Elaborate shitposts #Interests Functional programming Computational notebooks & literate programming PLT IDLs & wire protocols Situated software / malleable systems / end-user programming HTML / poetic web / web as a medium and material CS pedagogy Color theory Urban planning & economics Classical guitar Badminton Board games Sim racing / rally #Employment Meta Software Engineer September 2025 - Present Canva Senior Software Engineer March 2024 - September 2025 Software Engineer March 2022 - February 2024 Google 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 #Colophon Source code. Fonts: DINDong , Crozet , Fake Receipt, Playfair Display SC, Libertinus Serif, Libertinus Sans, Redaction 35, basiic, Hershey Noailles OldFrench Bold, & a remixed form of Hershey Times Triplex Light . ASCII font from TAAG. Weather data from Open-Meteo. Dataviz with Observable Plot. Atmospheric rendering by Horizon. Scrollbar guy from scrollbuddy. DO NOT EXPOSE TO WATER PLEASE PLEASE ⚛ atom.xml I use the SVG filters , , to emulate the bleed of thermal paper and for the crinkle. I also have a scan of receipt ads with low opacity behind the receipt. I borrowed this from Websites Done Cheap. This is the actual amount of data sent over the wire on page load. I'm using window.performance to measure this. It might even be 0B if served from cache. Click the butterfly! It's inspired by Chia Amisola's various performances. This shader implementation of the paper A Scalable and Production Ready Sky and Atmosphere Rendering Technique to try and approximate what the sky actually looks like in New York right now.enen1774878361https://maxbo.me