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++, NodeJS, Bash, Perl, Java
    • JavaScript/TypeScript, HTML5, CSS3, React, Web Components, Browser APIs
    • MySQL, SQLite, PostgreSQL
    • 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 lead a small team of engineers 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.
  • Solutions Developer
    2021–2023
    Diversity Arrays Technology
    Canberra

    I consulted with the genomics company Diversity Arrays Technology (DArT) one day a week. I:

    • Developed high-performance software for statistical analysis of DNA using C++/CUDA and Python.
    • Built a proof-of-concept cloud data workbench for genomics, using TypeScript/React and Docker to integrate the open-source Eclipse Theia IDE platform with DArT's existing tools.
    • Provided advice and initial implementation for various DevOps concerns, e.g. implementing compilation and packaging of MATLAB code using GitLab CI and CUDA containerization using nvidia-docker.
  • 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).
    • I'm a maintainer of (and primary contributor to) the open-source library sqlakeyset.
    • My professional history has been concentrated on a few languages, but I have hobbyist experience with many others, including Rust, Haskell and Ruby.
    • Graphic design (hobbyist, volunteer and freelance projects) using Inkscape and GIMP.