Projects

Below are a selection of projects I have been involved with that I can talk about freely.
Many of the projects done through my work are highly confidential.

VCFA Summer 7s Fixturing
2024

  • Created bespoke fixtures for seven divisions for the summer women’s league. Each division had unique constraints and a timetabling engine was created to optimize fixtures for each of these divisions.
  • Key Skills: Python, Optimization, Timetabling & Fixturing.

Academic Timetabling – International House @ The University of Melbourne

2017 — 2022

  • Created timetabling algorithms to create the academic timetable for International House.
    • This was a complex problem with over 400 students, 50 subjects, and 20 teachers.
  • Solution reduced two weeks of manual work to a few seconds.
  • Used for at least five years after creation.
  • Key Skills: Python, Optimization, Flask, JavaScript.
  • https://github.com/jdgsmallwood/school_timetabling

Primary School Sports League Fixturing
2023

  • Created fixtures for a local primary school requiring a fixture for teams of students to play each other in a multi-sport league.
  • Each team needed to play each other team in each sport, while providing variety each week in terms of teams played and sports played.
  • Key Skills: Python, Optimization, Timetabling & Fixturing.

Fantasy Premier League – Team of the Season Calculation
2023 — 2024

  • Calculated the perfect team of the season for local competition, satisfying league constraints.
  • Key Skills: Python, Optimization.

UV Warnings Melbourne – Telegram Bot
2024

Brownlow Medal Prediction
2014 — Current

  • Predicts the winner from each team in the Brownlow Medal count from game-by-game statistical data.
  • Key Skills: Python, Machine Learning, Web Scraping, Optimization, Postgres, Docker.

Flute Scale Dashboard
2021-2022

  • Tracks the tempo of scales practiced, and suggests scales that you have not practiced recently.
  • Created a Shiny dashboard with a Google Sheets backend to plot changes over time.
  • Key Skills: R, Shiny, Dashboarding.
  • https://github.com/jdgsmallwood/music-scales-dashboard

The Statistics of Monopoly
2014

  • Constructed a statistical model of the expected return from each property in Monopoly using Markov Chains and R.
  • Published an article “Roll the Dice!” based on this work in the University of Melbourne Farrago.
  • Done in conjunction with Dhanuka Nanayakkara.
  • Key Skills: Statistical Modelling, R.

Probability Analytics Commissioned by Board Game Designer
2017

  • Created bespoke modelling for a local board game designer on the expected number of turns a game would take to complete based on various parameters.
  • Key Skills: Statistical Modelling, R.

Limit Order Book Modelling
2015 — 2017

  • Completed as the research component of the Master of Science (Mathematics & Statistics) with Professor Konstantin Borovkov receiving a high distinction.
  • Analyzed tick-level data from the Australian Stock Exchange to construct an algorithm to reconstruct the limit order book at any point in time.
  • Modeled the evolution of the limit order book and proved that order arrival rates could not be Markovian.
  • Key Skills: Python, R, Statistical Modelling.

Drift Estimation on a Spatial Lattice
2013 — 2014

  • Completed as a summer research project with the Australian Mathematical Science Institute, supervised by Dr. Owen Jones.
  • Created methods to estimate the drift of observed stochastic processes using the crossing tree method.
  • Key Skills: R, Statistical Modelling.

Lux AI
2021

  • Created an agent to compete in the LuxAI Kaggle competition.
  • Utilized a rules-based approach to attempt to optimally extract resources & expand cities.
  • Implemented A* path-finding for agent movement.
  • Key Skills: Python, Algorithms.
  • https://github.com/jdgsmallwood/lux_ai