Anthony Carapetis

Curriculum Vitae

At a Glance

Who I am
  • Software developer with 10+ years experience in web technologies, data manipulation and software systems integration.
  • Mathematics PhD in geometry and differential equations, with practical experience in numerical simulation and statistical modelling.
My Toolbox
  • Python, C++, Bash, Rust
  • JavaScript/TypeScript, HTML5, CSS3, React, Web Components, Browser APIs
  • PostgreSQL, MySQL, SQLite
  • Linux, AWS, Terraform, Docker, Git

Work History

Software Engineer
Jan 2019–
under contract to Geoscience Australia
Canberra

The National Earthquake Alerts Centre (NEAC) operates highly-available software systems that detect earthquakes and disseminate the resulting information. I am the lead developer on a small team responsible for maintaining and enhancing these systems, providing architectural guidance and fostering a culture of code review and continual improvement.

  • Led an overhaul of our infrastructure management and DevOps practices, allowing us to quickly provision functional copies of our system, e.g. for training or automated testing, on AWS using Terraform.
  • Developed a custom data platform for the quality control, storage, discovery and dissemination of earthquake-related data of all kinds. Built on Python/Flask/SQLAlchemy, PostgreSQL/PostGIS, lit-element, JupyterHub.
  • Integrated the USGS ShakeMap model into our system, allowing the NEAC to rapidly estimate and visualize the areas most effected by an earthquake. I worked with geoscientists to tailor the configuration to Australian seismology, and added several new features to the ShakeMap software to meet our requirements, which I subsequently contributed back to the USGS repository.
  • Improved the NEAC's custom earthquake inversion software and managed its open-source release: wrote a test suite, refactored, ported to Python 3, improved performance, identified and fixed bugs, enhanced statistical models, replaced closed-source code with scipy equivalents.
  • Developed ETL pipelines to integrate external data into our operational system.
  • Created re-usable data extraction, analysis and visualization tools with Jupyter, pandas + scipy to support reporting and decision making by the NEAC's operations and science leadership.
Software Engineer
May–Dec 2018
CSIRO
Canberra

A fixed-term position at the High Resolution Plant Phenomics Centre developing software for agriculture and plant science. My main focus was developing infrastructure to exploit time series data gathered from sensor networks:

  • Reworked data ingest processes and set up a new storage and aggregation solution using InfluxDB.
  • Implemented a HTTP API to manage and retrieve time series data and metadata.
  • Designed and developed a web dashboard on top of this API to provide diagnostics and basic data visualization. JavaScript (ES6), D3.js, Plotly, HTML5, SVG, CSS3, Web Components.

Most of this work was integrated into an existing web application built on a Linux+Apache+SQLite+PHP stack. I also contributed to other projects, including a REST microservice built in Java/Spring and deployed using Docker.

Casual Sessional Teacher
2015–2017
Australian National University
Canberra

Teaching and marking for undergraduate classes in: Introduction to Mathematical Thinking, Advanced Mathematics and Applications, Black Holes and Cosmology.

Work History (Continued)

Software Developer
2006–2013
Unisolve Pty Ltd
Melbourne

Design and full-stack development of web applications & administration of associated systems and databases.

I worked on various large web applications, mostly built on Linux+Apache+Perl and backed by MySQL or PostgreSQL. On the frontend, I used JavaScript (JQuery, ExtJS) to create interactive user experiences.

Many of these applications were business systems that interfaced with older proprietary software; so I became proficient in systems integration, data wrangling/ETL and job scheduling.

Education

Doctor of Philosophy (Mathematics)
2013–2018
Australian National University
Canberra

PhD Thesis: Geometric Flows of Diffeomorphisms.
Supervisor: Ben Andrews.
Geometric flows hijack what we know about the physics of heat flow to study geometry: by making a mathematical analogy between "spikiness" and heat, we can deform poorly-understood spiky objects to simple smooth ones; and by understanding the mathematical properties of this deformation we can derive new knowledge about the spiky things we started with. In my thesis research, I applied this methodology to a previously unstudied class of flow.

Bachelor of Science Advanced (with Honours)
2009–2012
Monash University
Melbourne

Majors: Mathematics, Physics.
Honours Thesis: The Riemannian Penrose Inequality and the Inverse Mean Curvature Flow.
Supervisor: Gilbert Weinstein.
The universe should weigh at least as much as the biggest black hole it contains, but the mathematical embodiment of this fact (the Penrose Inequality) is remarkably difficult to derive from general relativity: it took until 1999 for even a special case to be proven. This thesis was an exposition of the problem and its solution intended for a slightly less expert audience.

Undergraduate Research

Summer Vacation Research Scholarship
2011–2012
Monash University
Melbourne

Reading project on the problem of minimal surfaces: if you dip a wonky loop of wire in a bucket of soapy water, what is the shape of the resulting bubble? The techniques developed to study this problem are now ubiquitous in physics and geometry.

Mathematics Research Project
2011
Monash University
Melbourne

Reading project in comparison geometry, the quantitative study of how the familiar relationships of lengths and angles change when we work on a curved surface (or in a curved space).

AMSI Vacation Research Scholarship
2010–2011
AMSI/Monash University
Melbourne

Numerical investigation of p-adic zeta functions using the mathematical programming language PARI/GP. Culminated in a presentation at the CSIRO Big Day In.

Other Experience

Some things don't come from work or school.
  • Interactive Media: as a spin-off from my thesis research, I combined numerical simulations of partial differential equations with my expertise in frontend web development to develop interactive visualizations of some geometric flows, which you can play with online at a.carapetis.com/csf/ (TypeScript + Canvas) and a.carapetis.com/diff_flow/ (PixiJS).
  • Various other toy projects can be found on my website and github page.
  • I'm a maintainer of (and primary contributor to) the open-source library sqlakeyset.