My more comprehensive Github profile can be found here.

Although a lot of recent code is tied to new private ventures, some of my larger available work can be found at the following repositories.

I’m taking a more “make public and clean up later” approach otherwise these would never be released.


imcyt Banner


All-in-one cell-based assay platform that applies ML models to single cell cytometry data and calculates yields and cost model for a given protocol (e.g. cost per unit of dopaminergic neurons or cost per unit of cultured meat). Think of it as a recipe engine for optimised cell based processes.

daedalus Banner


A Graphical User Interface in Kivy that executes cloud based (Airtable) liquid handling protocols, in this case feeding liquids to a microfluidic cell-culture circuit at very slow, but contious flow rates over many days. Integrates with pypump to work with the Tricontinent MC6000/C3000 & IDEX Rheodyne MX Series II liquid handlers.

protocoldb Banner


protocolDB is a Python package designed to streamline the management of laboratory protocols and associated data in a structured database, easily accessible for querying and analysis. It automates database connections and setups, supporting both MySQL and PostgreSQL. Utilizing an ORM, the package defines a comprehensive schema encompassing projects, runs, experiments, samples, imaging, results, and various inventory items like components, cell lines, and media. The tool simplifies data entry and retrieval, enabling researchers to manage complex datasets involving multiple experimental steps, from seeding and medium changes to dissociation and detection instances.

ezpubmed Banner


ezpubmed is a Python package designed to maintain an up-to-date local datastore of the world’s biomedical literature (pubmed), easily convertible into a pandas DataFrame for analysis. It automates the synchronization of PubMed’s ‘baseline’ and ‘updatefiles’ datasets, which include all historical papers and current year entries. Utilizing the peewee ORM, it efficiently manages updates and metadata corrections in a SQLite database. The tool simplifies the setup process and supports advanced functionalities such as custom queries and basic NLP tasks (e.g. LLMs), making it an effective solution for researchers needing streamlined access to comprehensive PubMed data.


wombat Banner


Wombat is a Python toolkit designed help answer geospatial related questions about Australian cities & regions. A simple to use set of functionalities enable the querying of of a large number of open-source datasets simultaneously. These datasets range from aerial imagery, building morphology, census information (e.g. demographics), points of interest, elevation, flooding, education, property sale history and transport networks. The goal of Wombat is to make it a good means to an ends, such that data products can be easily fed into other downstream geospatial analyses and visualisations.

specufestor Banner


Specufestor is a Python package designed to streamline the acquisition and analysis of Australian property sale data. This tool collects and organizes historical property sales data, and utilises various property attributes including photos and geospatial datasets sourced through Wombat. Specufestor not only aggregates extensive property data but also employs predictive models to forecast property prices. It was primarily designed to find somewhere to live in the midst of a housing crisis but was subsequently expanded to be more useful.


the caterpillar project Banner

the caterpillar project

The Caterpillar Project is a large suite of dark matter only cosmological simulations of 35 Milky Way-sized galaxies. At a resolution of ${10^4 M_{\odot}}$ per particle and 50 Myr temporal resolution, at the time represented one of the largest and highest resolution simulation suites of its kind in the world. These data were generated to help enable statistically probe the formation history and evolution of the Milky Way and its similar sized cousins.

cosmology made easy Banner

cosmology made easy

CME is a ’no-code’ Python-based Graphical User Interface (GUI) engineered to manage and execute ‘zoom-in’ simulations of smaller cosmological regions from larger parent volumes. This constructs Lagrangian volumes and submits subsequent suites to HPC environments, enabling careful checks and optimizations of simulation parameters over an ensemble of runs. Key functionalities include the visualization of dark matter halo catalogues and Lagrangian volumes. CME collectively supports the design and execution of ‘optimal’ cosmological zoom-in simulations.


pypump Banner


There is a little public code on handling liquid handlers via serial controllers. PyPump is a Python based tool that uses PySerial to control the Tricontinent MC6000/C3000 & IDEX Rheodyne MX Series II liquid handlers. It is designed to remove the technical work of making GUIs work smoothly with liquid handler operations (e.g. Daedalus). It may only help a few number of people, but it will save them many months should they discover this humble olive branch.