• Six years experience; since 2020 professionally.
  • GUI (PyQT).
  • Scientific and ML (TensorFlow, Scikit Learn, Scipy, Nevergrad, NumPy).
  • Cloud and database (boto3, apache libcloud, PySpark, SQLAlchemy).

Around 2015 I thought it was a good time to start learning ML and AI and so, naturally, I started learning Python. My first success was training a TensorFlow neural network to analyse ECG data. Since then I have written hundreds of thousands of lines of Python in Jupyter notebooks, modules and GUI applications. My time as a professional software developer has been mostly spent on writing Python.


  • Twelve years experience.
  • GUI (Swing, ImageJ plugins).

I learnt Java in 2009 so I could write ImageJ plugins to analyse my data at McMaster University. Over the course of the next 10 years I wrote numerous plugins for myself and others. Some of these plugins are available from my code page.


  • One year experience.
  • Android development (Android Studio).

I learnt Kotlin to develop the backend for an Android app at Arete Medical Technologies.


  • Many years experience, though I haven't programmed in it for quite a while.
  • GUI (wxWidgets).

C++ was the first non-proprietary language I learnt, back in 2003. Over the following years I used it to analyse my electrophysiology data, but around 2009 I gradually moved over to Java.


  • Many years experience.
  • Numerical solution (ODEs) and 3D visualisation.

I learnt MATLAB for numerical solution of coupled ODE models of gut motility ( Modeling Oscillator Networks in the Gut) but also used it for 3D visualisation of colonic manometry.

Experimental Expertise

Patch-clamp electrophysiology, organ bath diameter mapping,calcium imaging, confocal microscopy, primary cell culture.

Continuing Education

Big Data Analytics, McMaster Department of Continuing Education (six-course diploma, 2018-2019)
Summer School on Nonlinear Dynamics in Life Sciences, Fields Institute, Toronto (one-week, 2019)


Society for Mathematical Biology (2016 - 2019)
Canadian Association of Gastroenterology (2014 - 2018)
American Physiological Society (2012 - )


NSERC Discovery #06243 (2017-2021) Nonlinear dynamics of coupled oscillator networks. $40k/y
NSERC Discovery #386877 (2010-2016) Potassium channels in gut pacemaking. $45k/y

CIHR Open Operating (2010-2015) ICC in control of gastrointestinal motility. $200k/y


Spring 2015 Biology and Pharmacology 3A06, Introduction to Pharmacology.
Fall 2013 Biology and Pharmacology 4C03, Principles of Toxicology.
2008 - 2011 Teaching of patch-clamp to high school and graduate students.
2006 - 2007 Private tuition of high school students.


March, 2013-2017 (annually) Chair/Judge, Honours Biology and Pharmacology Thesis Defence, McMaster.


American Journal of Physiology, Biophysical Journal, Neurogastroenterology and Motility, Pflugers Archive, Regulatory Peptides, Frontiers in Neuroscience, Frontiers in Physiology, Annals of Biomedical Engineering, Virchows Archive, Journal of Cellular and Molecular Medicine, Life Sciences.