Hi, I'm Jake Coppinger.
I'm currently working as a frontend software engineer at Atlassian, improving the performance and reliability of an advanced text editor with millions of monthly users.
Say hello! I live in Sydney, Australia.
[email protected] |
A little bit about me:
- I'm currently working on visualising realtime Sydney transit congestion data to find the cheapest way of improving service frequency and speed - see Sydney Transit Graph.
- I play the violin solo and with an orchestra (before COVID-19). I was previously concertmaster of the Canberra Youth Philharmonic Orchestra and have played with the UNSW String Ensemble.
- I presented at TEDxSydney 2014 in the Sydney Opera House in front of 2,250 people.
- I dance salsa and bachata.
- I ditched QWERTY 3 years ago and now write in Colemak on a Kinesis Advantage 2 (it's a concave, columnar, split, tented, mechanical keyboard with thumb keys!) I still write in QWERTY on MBP keyboards to stay fluent.
- I grew up in Steiner, Montessori and public education.
- Intel paid for my flights to LA to represent Australia in an international high school science fair.
- I'm a proud cyclist, urban planning nerd and transit advocate.
- I'm a volunteer surveyor & editor for OpenStreetMap. Chances are you've encountered my small map improvements in Uber/Tesla routing/Instagram/Snapchat/Facebook maps. I occasionally volunteer with the Humanitarian OSM team supporting natural disaster recovery efforts.
- I'm a photographer and filmmaker. I cover a lot of architecture, transit infrastructure and landscape on the photography side, and documentary/music videos (with local and international musicians)/tutorials on the film side.
- My YouTube channel has ~4.7 million views.
Proficient: TypeScript, C++17, Python
Familiar with: C#, Java, Bash, SQL Some experience with: Rust, Perl, Ruby
Tools & Frameworks:
Proficient: React, ProseMirror, Flask, Serverless Framework, Vim, Git
Familiar with: AWS Lambda & API Gateway, Webpack
Some experience with: OpenCV, NumPy, AWS EC2, Postgres, Docker
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, OS
- UNSW Computing Elite Students Award
- UNSW Dean's Honours List 2017
Gungahlin College (public, non-selective)
Atlassian, Software Engineer (2020-)
Improving the performance, reliability and customer satisfaction of the Atlassian Editor. My code impacts the experience of over 2 million monthly active users.
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. It is an open-source React app using the Prosemirror toolkit written in TypeScript.
Building a rich text editor in a browser is challenging task - there is a huge amount of complexity which must function intuitively to all levels of users, along with a custom document format and robust real-time collaboration between users. I worked with tools such as Bolt, Browserstack and Jest.
Some highlights were:
- Implementing a dark mode theme which will ship in the Jira mobile apps in collaboration with the native iOS and Android editor team
- Proposing and implementing a change to the Atlassian Document Format used across Atlassian products
- Improving the search algorithm to help users insert rich widgets more intuitively
News Corp Australia, 6 month internship (2017)
Worked in the front-end product development team and with a backend specialist on a relatively small from-scratch project to advance News Corp's front end stack, a Global Preference Centre for email newsletters www.newsletters.news.com.au. It uses 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:
- Tooling for linking multi-repo structure (emulating a monorepo)
- Front-end dev of the Vue.js app
- Setting up a 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
Cloudspotting.app, 2019 github.com/jakecoppinger/cloudspotting.app
(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 github.com/jakecoppinger/sydney-bus-departures
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: jakecoppinger.com/transit_in_sydney)
UrbanScribe, 2016 github.com/jakecoppinger/urbanscribe
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.
Departing.io, 2015 jakecoppinger.com/departing_io
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
Swirlesque, 2013 jakecoppinger.com/swirlesque
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.