My Work

Energy engineer turned data professional. My work is focused on using data to prevent climate change.

I am interested in the different outcomes we get when we design and optimize energy systems for money or for the environment - the space that exists between economic and carbon optimization.

Currently I’m working as a Lead Data Scientist at Meridian Energy.

I’m also passionate about teaching & mentoring data professionals – I offer mentoring here.

Energy Data Science

Linear Programming for Energy Systems

energy-py-linear – A Python library for optimizing the dispatch of energy assets with mixed-integer linear programming, including batteries, electric vehicles and CHP generators:

$ pip install energypylinear

Introductory blog postmeasuring forecast qualitysource code.

Australian Electricity Grid Data

nem-data – a Python CLI for downloading data for Australia’s National Energy Market (NEM):

$ pip install nemdata

A Hackers Guide to AEMO Data is a developer focused guide to the electricity market data provide by AEMO for the NEM.

UK Electricity Grid Data

Elexon API Web Scraping using Python and What is the UK Imbalance Price?.

Space Between Money and the Planet

Blog postsource code.

Demonstrating the existence of a tradeoff between monetary gain and carbon emissions reduction in the dispatch of electric batteries.

Reinforcement Learning for Energy Systems

Blog postGithubDQN debugging, hyperparameter tuning and solving.

Optimization

Soft Actor Critic Reimplementation

Source code - implementation of the Soft Actor Critic (SAC) reinforcement learning algorithm. SAC is an off policy algorithm capable of both continuous and discrete policies.

World Models Reimplementation

Blog postsource code - references & resources.

Implementation of the 2017 classic paper. Variational auto-encoder, mixed density networks and evolutionary optimization learn to race a car from pixels.

Parallelized Cross Entropy Method

Source codeblog post.

CEM to learn CartPole and Pendulum control problems. Parallelized across processes and in numpy.

$ python cem.py pendulum --num_process 6 --epochs 15 --batch_size 4096

Evolutionary Optimization

Source code – evolutionary optimization on 2D optimization problems.

Dynamic Programming

Source code – visualizing dynamic programming using pygame.

Data Science Education

Data Science South

A sister website focusing on data professional (analyst, engineer, scientist) education.

Teaching Monolith

Data science teaching materials.

NLP

climate-news-db

A dataset of climate change newspaper articles – appsource code.

Creative Writing with GPT2

Fine-tune a base GPT2 model for your favourite authors – source code.