Recent Publications

The erosion impact of large coastal storm events typically occurs across broad (100s of km) sections of coastline and may include …

Sandy coastlines typically comprise two key parts; a beach and dune. The beach is the section of sandy coast that is mostly above water …

Bayesian Networks (BNs) are useful methods of probabilistically modelling environmental systems. BN performance is sensitive to the …

After decades of study and significant data collection of time-varying swash on sandy beaches, there is no single deterministic …

Bayesian Networks (BNs) are an increasingly popular method for modelling environmental systems. The discretization of continuous …



Calorie Calculator Web App

Designed and developed the web application

Machine Learning Model Deployment Tutorials

Tutorials for deploying machine learning models with SageMaker and Flask.

Python Packaging Book

Co-authored open-source book about packaging and distributing Python code.

Public Machine Learning Course

Designed and instructed BAIT509 at the University of British Columbia, available on GitHub.

Custom Apple Watch faces

Custom-made Apple Watch faces with educational, sport, and science themes.

NRL game predictions

Data-driven model to predict the outcome of Australian National Rugby League (NRL) games.

Predicting wave runup on beaches.

A data-driven Gaussian process model of wave runup elevation on beaches

World Water Monitoring Day outreach program.

Organiser of school outreach program for water quality education, World Water Monitoring Day and the Streamwatch iniative.

pybeach - a Python package for locating the dune toe on cross-shore beach profile transects.

A Python package for automatically identifying beach profile features such as the dune toe, dune crest and shoreline position

Recent Posts

A short discussion of methods for clustering mixed datasets of categorical and continuous data.

Simple tutorials of how to build and deploy machine learning models with commonly used tools.

How to easily perform simultaneous feature preprocessing, feature selection, model selection, and hyperparameter tuning in just a few …

A simple summary of how to collaborate on open-source projects using forking, branching and pull requests.

Learn how to quickly and easily build a website like this using Hugo in just 5 steps.


UBC Master of Data Science (Postdoctoral Teaching and Learning Fellow)

UNSW Civil Engineering (Teaching Assistant)

  • CVEN1300 Engineering Mechanics
  • CVEN2002 Engineering Computations
  • CVEN2201 Soil Mechanics
  • CVEN2301 Mechanics of Solids
  • CVEN3201 Applied Geotechnics and Engineering Geology
  • CVEN2501 Principles of Water Engineering
  • CVEN2303 Structural Analysis and Modelling
  • CVEN3101 Engineering Operations and Control
  • CVEN3031 Civil Engineering Practice
  • CVEN3502 Water and Wastewater Engineering
  • CVEN4003 Engineering Design Practice


  • Room 3144, Earth Sciences Building, University of British Columbia, Vancouver, Canada