About Me

A PhD researcher with a love of software.

I'm a PhD candidate at Newcastle University. I'd put the title of my thesis but it's a bit of a mouthful, so I'd better not - the short version is that I work on wave energy generators. I’m a self-taught programmer who mostly uses MATLAB for work, but I love diving into a new programming environment when the opportunity strikes. I’m gradually developing a weightlifting app and have even dabbled in making a game or two in unity – although I’m not much of an artist. I think that where I really shine is making web bots and data scrapers for pulling data from websites. My proudest feat is probably making a Python bot to search for driving test cancellations so that I could take my exam sooner.

I Speak Computer

I mostly use MATLAB in my day job, but I like to learn new languages as needs or interests arise.

  • MATLAB for simulations
  • Python for automation & web bots
  • Kotlin for android apps
  • HTML, CSS, and JS for websites
  • C# for making games
  • SQL for databases

What I've Been Doing

Here are a few of the projects I'm working on right now or have finished previously.

Halfords Stock Checker

In 2020 the UK had its first COVID lockdown and oddly, the whole country decided to buy a bicycle; myself included. However, stock flew off the shelves almost soon as it arrived. This Python app was the solution for me, every minute or so, it makes a a request to the Halfords website to see if the bike I wanted is in stock, and sends an alert when one is available.

Driving Test Cancellation Finder

In the summer of 2020 COVID continued to be disruptive but driving tests were finally resumed with a backlog in the millions. I needed to pass ASAP, but the next test date was 4 months away. Thankfully, the booking website posts test cancellations, and allows users to fill them; first come first served. This bit of Python software opens up a chrome window and searches for cancellations at the requested locations and between requested dates. Developing this bot was a thrilling challenge and proved a excellent game of cat and mouse between bot and bot detection.

Academic Topic Popularity Analysis

In academia it's important to know the state of engagement between researchers and a field. An excellent metric is the number of papers published per year. This Python bot uses "www.sciencedirect.com" to make a search of any requested topic and count the number of publications in each year and plotting the results, giving an easy view of whether the topic in a state of growth or decline.

Sidescrolling Game

In one COVID lockdown - I forget which - I was playing a game on my Nintendo Switch, and I suddenly thought, "I could do that". In a passion I jumped right on my computer and downloaded a copy of Unity and Visual Studio. The result was a small infinite sidescrolling game about a purple octopus avoiding sea mines. I'm not much of an artist and it isn't quite finished; but I made all of the assets so I'm a bit proud of it.

Weightlifting App

I'm very passionate for weightlifting but always found myself annoyed by the apps available. They tend to not have the right balance of features, or hide them behind a paywall. This Android app is a bit of a passion project for me. The original idea was to make a basic weightlifting tracker and then add all the useful features; like warmup calculators and even an option for yearly programming for more advanced lifters. It's a lot of work for one person and I have an iPhone now, but I like to go back and add to it now and then. Currently it's stable as a weightlifting tracker and I use it for training, but I haven't gotten around to adding extra features.

Simulation of an IPS Buoy

If you're not in the energy or marine sector - and maybe not even then - the title above probably doesn't mean anything to you. To explain a little, an IPS buoy is a device used to extract power from the sea waves. In my PhD work it's important to develop mathematical models of how things work in order to understand and improve them. This MATLAB project comes in three parts. First is a function that analytically simulates the device over a specified time and with some initial conditions if need be. Second is a script that runs a loop to vary certain parameters and output the results for analysis. And thirdly is a Python script to an animation of how the device moves, because things are better understood when they're visible.

Contact Me

For any enquiries, send me a message using the form below.

* Required Field
* Required Field
* Required Field
* Required Field