University of New South Wales — BSc Computer Science (Distinction)
UNSW Co-Op Scholarship
2016 – 2019
AI, Computer Vision, Neural Networks, Advanced C++, Distributed Systems, Algorithms, Operating Systems
- UNSW Computing Elite Students Award
- UNSW Dean’s Honours List 2017
Gungahlin College, Canberra (public, non-selective)
- Intel ISEF, Los Angeles
Orana Steiner School
Atlassian, Linking Platform (P40 Full Stack Software Engineer, Apr 2021-)
The Linking Platform team builds all smart link experiences in Atlassian to safely preview the private links of tens of millions of monthly users. This involves building, maintaining and running a globally distributed network of high volume backends and dozens of microservices integrating with third parties reliably – along with beautiful frontend components. The team works across a number of large scale Typescript & React codebases.
So far I have:
- Reduced the cost of one of our microservices by 30.9%, and the entire team’s AWS bill by 24%
- Lead the development of a new service to resolve Bitbucket links, increasing team’s MAU by 7%, increasing link resolutions by 3x and improving performance
- Won the department wide innovation week (a week long hackathon) using AI
- Improved team culture by auditing regular rituals, organising volunteering sessions
- Took on-call rosters and improved team’s on-call performance by improving documentation
- Implemented a number of serverless resolvers integrating with third party APIs
- Mentored junior engineers
Atlassian, Editor Platform (Frontend Software Engineer, Jan 2020-Apr 2021)
Improved the performance, reliability and customer satisfaction of the Atlassian Editor, used by millions of monthly active users. (Typescript, Prosemirror)
- Led the implementation of the new date picker you see across all Atlassian services
- Won the Asia-Pacific company hackathon: I had an idea, formed a team, led the implementation and presented it
- Improved selection behaviour in the Atlassian Editor of a number of components
- Improved reliability by preventing future regressions and improving test tooling
- Mentored an intern
Westpac, Software Engineer, 6 month internship (2019)
Worked in a team to develop a green-field specialist finance C# .NET application. I helped improve their Agile work practices and development methods.
Atlassian, Software Engineer, 6 month internship (2018)
Worked with the front-end Editor platform team which builds an advanced WYSIWYG text editor used in production in many Atlassian products. (Typescript, Prosemirror)
Some achievements were:
- Proposed and implemented a change to the Atlassian Document Format used across Atlassian products
- Implemented dark mode features for the Jira mobile apps in collaboration with the native iOS and Android editor team
- Improved the quick insert search algorithm to help users create better documents
News Corp Australia, 6 month internship (2017)
Worked in the front-end product development team and with a backend specialist on a small from-scratch project to advance News Corp’s front end stack. It used Vue.js Server Side Rendering on AWS Lambda behind AWS API Gateway, using GraphQL as an abstraction for legacy systems.
Some things I worked on were:
- Building tooling to emulate a monorepo by linking multi repos
- Front-end dev of the Vue.js app
- Setting up the CI and testing workflow on Atlassian Bamboo using Docker
- Implementing AWS Lambda deployments from Bamboo using the Serverless framework
- On-demand feature branch deployments to Lambda using AWS API Gateway environment
- JS unit tests, setting up Vue component tests using JSDOM, headless parallel Serverless screenshot integration tests
- Load testing to determine the best Lambda CPU/RAM settings and cost
- Improving SSR performance using AWS X-Ray tracing; ~300ms render time to ~50ms
Proficient: TypeScript & React, Python
Familiar with: C++17, SQL
Some experience with: Vue.js, C#, Rust
Tools & Frameworks:
Proficient: React, Koa, AWS, Jest, Git, Splunk, SignalFX, Playwright
Familiar with: Docker, SQL, Webpack, ProseMirror, Flask
Some experience with: OpenCV, NumPy
Better Intersections, 2023
A collaborative website to measure and display traffic light timings. A fairly simple TypeScript app, using Mapbox GL JS, Cloudflare pages and Google Sheets as a backend.
Safe Cycling Map, 2023
Wrote a vector tileserver from scratch in one afternoon in Typescript, calling the JS bindings for the Rust osm2streets code compiled to wasm. It generates GeoJSON which is then returned by Koa as a protobuf. Builds upon the incredible work of Dustin Carlino who leads the A/B Street traffic simulation project.
Sydney Transit Graph, 2022
Web app to display realtime marey diagrams of the Sydney bus network. Built with vanilla JS (TypeScript), p5.js for the graph, and Mapbox GL JS for the map (which uses OpenStreetMap data). Realtime data ingested every few seconds via an service running on AWS EC2 to store Protocol Buffer files on AWS S3.
When requested via an API, a service on AWS Lambda retrives these Protocol Buffer files and computes the trip progress and occupancy of every bus in a specified time window. I adjustably quantise the number of Protocol Buffers requested (and thus the number of results) via looking up available timestamps.
Trip progress is calculated by comparing positions against bus route shapes. These route shapes have been precomputed from GTFS database dumps (via Sqlite) and stored on AWS S3 as JSON.
(No longer in active development due to imagery licencing issues)
Weather radar simplified – a web app that shows every Bureau of Meteorology radar image animated on a slippy map in your exact location. I wrote a custom tileserver which georeferences BOM images and generates slippy map tilesets with Python GDAL and ImageMagick, served up to a Mapbox OpenGL slippy map using an OpenStreetMap cache.
Written in TypeScript (for web and Node) and Python. I also tinkered with FFT powered rain prediction!
Sydney Bus Departures, 2017
I created a simple API running on AWS Lambda & Heroku to query real-time Sydney bus arrivals using TfNSW’s Trip Planner API. I also built a Pebble JS app to query my nearest favourite bus stops and get real-time departures. (I previously visualised Sydney transit data along with a short film/swiss poster)
I developed a proof-of-concept system to enable A/B testing in architecture using computer vision. A laptop recognises pedestrians with OpenCV, sends their positions over WiFi to an Arduino which plots their position on a piece of paper.
A real-time bus arrivals app for Canberra to simply answer “When will my next bus come”. Built with a Python backend on Heroku which queries the ACT government’s NXTBUS SIRI API and a JS front end that renders on a Canvas using Processing.js
A system for interacting with IoT devices using hand gestures. I developed an Arduino based prototype with a low power gesture recognition algorithm, an Android app in Processing and a 3D printed casing through a year long independent research project while in year 12. I presented my research at TEDxSydney, Intel ISEF, BHPBSEA, Razorfish, CSIRO and was interviewed by University of Pennsylvania, SMH, The Australian, ABC News, 7:30 report, Ten and 7 News.