Hello! I am a computer scientist and mathematician with experience in optimisation, modelling and software engineering.
I am a self-motivated and independent learner equipped with a curious mind and a growth mindset. I am driven to help those around me to learn and grow also.
I excel at applying creativity in thinking and to problem solving, while bringing strong analytical skills and reasoning to the table.
I enjoy making, whether that be prototypes, production tools, or a difference.
I possess a strong work ethic, operate with confidence and autonomy and pursue hidden leadership.
The Modeller role at HVCCC is broadly defined, enabling the pursuit of all things modelling and analytics. The role has a strong focus on building modern tools, and improving organisational capability within HVCCC's modelling team, to raise the quality of work while reducing turn around time.
Responsible for "what if" analysis using HVCCC's Whole of Coal Chain simulation model to assess the impact of potential changes to infrastructure, operations or contracts between stakeholders.
Management at FogHorn was restructured in 2016 to allow me to incorporate the existing Venue Manager and Bar Manager roles. Responsibilities included leading the Management Team, leading the Front of House Team, staffing, training, rostering, stock management, supplier negotiation, marketing and brand development, content generation, social media, events creation and promotion, functions management, creation and maintenance of sales reports and KPIs.
Thesis title: Mixed integer linear programming models for machine scheduling
Supervisors: Natashia Boland, Hamish Waterer
In the thesis several new MILP formulations for the single machine scheduling problem are proposed. These include a family of formulations which generalise the classical time indexed model. Other contributions in the thesis include strong formulations for sequencing models, with particular application to lot sizing problems. Implementations in this project were facilitated by Python, CPLEX and Gurobi.
Thesis title: A mobile machine scheduling problem with collision avoidance
Supervisor: Natashia Boland
The thesis was motivated by a real-world scheduling planning task unique to the Patrick container terminal in Port Botany. Several MILP models were developed, including a novel approach based on discrete events, capable of providing a detailed, efficient and collision free paths through space and time for 5 rail mounted gantry cranes. The models were implemented with SCIP and its C++ interface. A Tabu metaheuristic embedding a LP-based local search algorithm was also designed and implemented.
The staircase package is an open source Python package which is used to model mathematical step functions. I am the creator and lead developer since its conception in 2020.
It is closely aligned to pandas and is designed to operate as part of the "pandas ecosystem". It makes converting raw, temporal data into time series easy and readable. Furthermore there is a rich variety of operations - arithmetic, relational, logical, and statistical - to enable analysis, in addition to functions for univariate analysis, aggregations and compatibility with datetimes.
The package is backed by a thorough test suite and comprehensive documentation including user guide, case studies and API reference.
A talk on staircase from PyCon Australia 2020 can be found here. Note that a new major version of staircase, which includes backwards incompatible API changes, has been published since this talk was given.
eWoCC is Hunter Valley Coal Chain's incumbent "whole of coal chain" simulation model. The coal chain in this context includes the loading of trains at mines, the movement of vessels through the port, and everything between. It is the cornerstone of "what if" analysis performed at HVCCC to assess the impact of potential changes to infrastructure, operations or contracts between stakeholders.
eWoCC is built with Anylogic, a java based simulation framework, and proprietary java libraries built in-house at HVCCC. It is one of the largest models built on this platform. The design and implementation of the model is the product of contributions from multiple parties including The Simulation Group, PriceWaterhouseCoopers and internal modellers and analysts at HVCCC (with particular mention to Mateus Paula de Rocha).
The project began in early 2016 and took approximately three years to complete the initial release. I joined the project in early 2018, assumed the role of lead developer after Mateus' departure from HVCCC in mid 2018.
PISO (Pandas Interval Set Operations) is an open source Python package which provides set operations (union, intersection, difference + more), analytical methods, and lookup and join functionality to pandas interval classes.
Currently, there is a lack of such functionality in pandas, although it has been earmarked for development. Until this eventuates, piso aims to fill the void. Many of the methods can be used via accessors, which can be registered on the relevant pandas classes.
Several case studies using piso can be found in the user guide, with smaller examples and detailed explanation of functionality in the API reference.
Peduncle is the incumbent stem generator at HVCCC, designed and implemented by myself, for synthetic data generation for vessel stems used as input to the eWoCC simulation model.
Given a demand profile (for coal tonnage) specified by mine and time bucket (alongside several other parameters) Peduncle creates a realistic schedule of vessels and associated cargoes which closely satisfy the given requirements.
The problem is framed as a multi-objective optimisation problem and is solved through a combination of a simulated annealing metaheuristic and linear programming. Peduncle is implemented as a Python package and leverages matrix operations in numpy extensively to produce execution speed close to that obtained when transcompiling to C (via Nuitka).
Finch is a web app I produced to aid in my capacity as Treasurer at Carrington Bowling Club. It automates the process of producing a monthly report, containing extensive metrics and charts, from the club's financial statements.
The automated pipeline is composed of several Python-based components including pandas, jupyter notebooks, papermill and nbconvert. It is wrapped up in a Flask framework, containerised using Docker, and deployed to Heroku for private use by the club.
In the thesis several new mixed integer linear programming (MILP) models, named "Bucket Indexed (BI) Formulations" for the single machine scheduling problem (SMSP) are proposed. Many real world scheduling problems that are based on the SMSP are both theoretically and computationally difficult to solve.
The models proposed include a family of formulations which generalise the well known time-indexed model for SMSP. Other contributions in the thesis include improvements and extensions to existing formulations and strong formulations for sequencing models with particular application to lot sizing problems. Implementations in this project were facilitated by Python, CPLEX and Gurobi.
Implementations in Python can be found, and downloaded as a package, here (work in progress).
The thesis was motivated by a real-world scheduling planning task unique to the Patrick container terminal in Port Botany. In an effort to increase efficiency and reduce costs, Patrick constructed new infrastructure to facilitate a container exchange system, providing short term storage for containers. The system included 5 semi-automated rail mounted gantry cranes, which were required to perform container movements while maintaining a minimum distance from each other.
Several MILP models were developed, including a novel approach based on discrete events, capable of providing a detailed and efficient path through space and time, for each crane. The models were implemented with SCIP, a solver with a C++ interface. A Tabu metaheuristic embedding a LP-based local search algorithm was also designed and implemented.
HVCCClib is a suite of proprietary Python packages developed and used at HVCCC for analysis, visualisation and automation. The introduction of these packages enabled a much faster turnaround of analytical work and facilitated consistency of visualisations between charts, reports, and across platforms.
The packages are published via Poetry to a private PyPI feed in Azure and are backed by testing and build pipelines. I have led the development of this library since its inception.
In 2016 FogHorn Brewhouse, where I was Operations Manager at the time, made the local paper on two occasions for our creative coasters, designed by yours truly.
We would go on later that year to win the Marketing award at the Hunter Manufacturing Awards.
More noteworthy perhaps is that they are now being onsold via ebay. You too could own a slice of history!
I'll never turn down an opportunity to do some amateur graphic design, as another outlet to express creativity. From beer tap decals, to posters, to logos for Python packages, I'll rarely pass up an opportunity to exercise skills in Inkscape and GIMP.