personal projects


Award-wanning software, as recognised by the English Chess Federation, for organising chess tournaments. A web-app, desktop, and mobile app that automates and modernises and personalises the process of organising tournaments to make the experience effortless.

Project created: 3 December 2019

First backend release: 7 December 2019

Stable desktop release: 24 December 2019

Launched: 7 March 2020

Award received: 3 September 2020


A discord bot perfected for chess servers

Project created: 29 March 2018

500 commits reached: 22 July 2019

Website published: 11 August 2019

In active development

Oxford University Chess Club

The official website for the Oxford University Chess Club, rewritten in React such that members can easily collaborate and update its information

Project created: 25 October 2019

Public deployment: 27 October 2019

My personal website, an opportunity to experiment with front-end technologies

Project created: 17 September 2019

In active development


Intuitive mod-mail features for Discord inspired by new Reddit mod-mail

Project created: 20 October 2018

Stable build published: 14 November 2018



Over the course of 24 hours, I led a team to build an app which transcribed live and archival data from the House of Commons for a mobile viewer.

Project run: 24 November 2018

Project finished: 25 November 2018

HackMIT 2019

Of a choice of 6 ideas I drew up, we built a app for the 'Social Goodness' category that sought to quantify an individual's contribution to others and the environment.

Project run: 14 September 2018

Project finished: 15 September 2018


Reinforcement learning browser game which trains bots to learn off that data.

Project run: 16 November 2019

Project finished: 17 November 2018

open source projects


A fully-fledged API to run an election in Node.JS with IRV, STV, and FPTP support

Project created: 16 December 2019

Published: 3 January

lichess for JS

The predominant JavaScript wrapper for the lichess API

Project created: 20 March 2019

Stable and complete v1.0 build published: 4 July 2019

Undergoing rewrite

ECF for JS

The Node.JS API for the ECF chess grading database to make gradings human-readable and queryable

Project created: 15 August 2019

Project finished and published: 16 August 2019

Added typings: 9 January 2020


Extremely fast, extremely powerful, ES6 implementation of the Aho-Corasick string-matching algorithm with high user-customisability

Project created: 20 March 2019

Project finished and published: 22 March 2019

Added typings: 9 January 2020


A powerful and light-weight selector for instantly cutting to the heart of big, nested data to find all useful properties. Takes a simple string query parameter and fetches all possible matching nested values of an object.

Project created: 28 August 2019

Project finished and published: 28 August 2019


A unique library that takes a JavaScript function and returns its input parameter 'names'. Tested to work with even destructured params and params with default values

Project created: 24 April 2019

Project finished and published: 24 April 2019


Simple CLI to convert musical notes into their ASCII values, for cryptanalysis purposes

Project created: 18 July 2019

Project finished and published: 18 July 2019


User-focused CSV parser to JavaScript object using JSON 3 syntax

Project created: 16 December 2018

Project finished: 17 December 2018



Solutions written to 'HackerRank' challenges

Languages: node.js, python, C, C++