Clinician Programmer
I work as a clinician within the NHS in England and have an interest in software development and machine learning.
My iOS Apps
Doctor’s Bag app
An App to help doctors keep track of medication expiry dates.
Resting Pulse app
Measure your pulse rate using the iPhone camera.
Kitchen Store Cupboard app
Keep track of your kitchen herbs and spices.
Popular posts

Stacking machine learning models: Light GBM and a neural network
Using Python to stack a Light GBM model and a simple neural network. 
Exploring the iris dataset using Python and KNearest Neighbours
The Scikit documentation includes some great examples. Looking through the examples I found them difficult to interpret at first. These are my own notes on some variations of these examples, with some detailed comments added. Links to reference information are included throughout. 
Using coremltools to convert a scikitlearn model to Core ML format
I wanted to convert a trained Scikitlearn logistic regression model into a Core ML format model which could be used in iOS. 
Linear Regression in Swift
Linear regression is a technique for creating a model of the relationship between two (or more) variable quantities. This is an explanation of the technique with code examples in Swift.
Recent posts

A Swift implementation of the NewtonRaphson method
A basic Swift implementation of the NewtonRaphson method for finding the roots of a mathematical function. 
JPEG label  A Python script to rename JPEG files according to the date in their EXIF data
A simple command line tool to rename jpegs by their EXIF date (DateTimeOriginal). Written in Python. 
Linear algebra in Swift: a matrix struct data type
A matrix struct data type to simplify linear algebra using the Accelerate framework and higher order functions. Operator overloading is used to make the matrix calculations more readable. 
Exploring the iris dataset using R
In a recent post I used Python to explore the iris dataset. This is an attempt to produce the same output, but using R. 
Exploring the iris dataset using Python and KFold cross validation

Python script to create a blank Jekyllstyle blog post
A short script to create a blank post. 
The Reduce function in Swift
Let’s look at thereduce
function working on an Array. 
Recursion in Swift
Recursion is essentially when a function calls itself as one of its steps. 
The Map function in Swift
Let’s look at themap
function working on an Array. 
Python implementation of a Stack
A Stack is an ordered collection of items of data (wikipedia). 
Python implementation of a Queue
A Queue is an ordered collection of items of data. 
Python implementation of an Insertion Sort
Insertion sort is a classic sorting algorithm. 
iOS App Startup: avoiding shutdown by watchdog if app launch is slow
If an app launches too slowly then the iOS watchdog process will shut it down. For example, trying to start up Core Data on the main thread can cause this. But what if there’s nothing useful the app can do until the startup process is completed and Core Data is available? 
Logistic regression: a simple explanation and worked example
Logistic regression is a technique for creating a model of the relationship between one or more input (“independent”) variables, and an output (“dependent”) variable which is categorical. Categorical means that the dependent variable can not take just any value, it can only take certain values. 
Simple implementation of prefix notation calculator in Swift 3
A Prefix (Polish) notation calculator. 
A simple chess game in Java
Calculating Knight’s moves.