> Projects


Java, Maven

Gradeer is a modular assessment tool with support for both automated and manual assessment. The tool allows tutors to run unit tests and static analysis tools on students' programs to automatically assess their code. In addition, tutors can use manual checks to grade and write feedback for learning outcomes which are more difficult to assess automatically. I have helped to deploy this tool in a series of programming assignments for an introductory Java programming module at the University of Sheffield.

Risk of Random 2


A webapp to randomly select a player character for the roguelike game, Risk of Rain 2.


Valve Hammer Editor

An oilrig-themed map for TTT, a hidden identity gamemode for garrysmod. With a broad variety of area in a relatively small environment, players are provided with many opportunties for frantic emergent gameplay, which the gamemode thrives on.

The map is featured in a video with over 380K views by a popular YouTube channel, and has around 32000 subscribers on the Steam Workshop.


JavaScript, Vue

A simple anagram solving webapp.

RFID Register System

Python, Linux, Electronics

SLUGScan is a register system for fire-safety at society events. Society members are given RFID cards, which are scanned by the system, updating a SQLite database which records their presence at events.

The system runs on a Raspberry Pi 3, and is housed in a 3D printed case, adapted from an open design.


Python, Linux, Electronics

My undergraduate dissertation project, PiROMANCER, was a psuedo-modular synthesiser running on a Raspberry Pi 3.

The system is Linux based, with synthesis performed using Pyo, a Python audio library. The Raspberry Pi's GPIO pins are used as input to determine signal routes, alongside "analog" input with the use of a DAC. I designed and built the system, using the university's manufacturing facilities (such as laser cutting equipment).

For those interested in running Jack on a Raspberry Pi, the GitHub repository's README (alongside the full dissertation) provides some insight on some fixes for issues which may be encountered. The repository also includes the system's code and design files, licensed under GPLv3.

(This dissertation project was supervised by Prof. Guy Brown at The University of Sheffield).

Bullet Hellions

Haxe, HaxePunk

Bullet Hellions is a local two-player versus bullet-hell shooter. Players use various attacks at their disposal to eliminate their opponent, whilst dodging the deadly projectiles headed their way.

Code Defenders

Java, Tomcat

I contributed to the Code Defenders project, by implementing a single-player mode, which allows for individuals to practice unit testing in a non-critical environment, with instantaneous feedback. This involved integrating toolsets into a Tomcat web application. EvoSuite was used for automatic test suite generation, and Major for mutation testing.

My work was funded by The University of Sheffield's SURE Scheme, and supervised by Prof. Gordon Fraser and Dr. José Miguel Rojas.

(Note: Due to the high computational requirements of test suite generation, the single-player mode is currently disabled on the public-deployed version of Code Defenders.)