Below you will find information on some of the more interesting projects I have worked on. Hover over the bars on the left to see long-term projects that were worked on over multiple years.
2023
Aiohttp-admin
Source
I completely recreated the aiohttp-admin library. This provides a very easy way for users to create full admin interfaces automatically from SQLAlchemy models.
2022
No new projects this year, but see the bars to the left for projects that I continued to work on.
2021
No new projects this year, but see the bars to the left for projects that I continued to work on.
2020
GNOME Tesla
Source
A GNOME replacement for the official Tesla app. Designed to be adaptive to run on mobile and desktop.
asyncio GTK+ Python
2018
GNOME Boardgames
Source
A boardgame manager that allows the user to easily sort through and find a game to play from their collection, using data fetched from boardgamegeeks.com. Of particular use is the option to restrict the search to a specific number of players, which will also show which games are the best rated for that number of players. asyncio GTK+ Python
Coinbase Payment Gateway
Source
A WooCommerce payment gateway created for Coinbase Commerce.
This plugin allows customers of Coinbase Commerce to accept Bitcoin payments on their WooCommerce website.
Bitcoin
PHP
WordPress
2017
TrashMail Web Extension
Source
A clean and lightweight web extension written for the new Firefox. This was created for the TrashMail.com service and allows the user to right-click and generate a new disposable address using the TrashMail API.
JavaScript Web Extension
Cheat-proof P2P Games
For my MSc project I did research on the possibility of creating P2P multiplayer games which were cheat-proof. For this, I assumed that an attacker was a player with full access to the source code and could modify the code of their own game as desired.
To achieve this I needed to use modern cryptographic techniques, the main technique being secure multi-party computation. With these tools I was able to create some simple games where an attacker would not be able to cheat.
As a proof-of-concept I created the core of 2 games. The first game was a version of Mastermind, where 2 players compete to guess each others code first. The second game was Battleships, where 2 players compete to sink the other’s ships first.
Cryptography Game Dev
Separation Game
Read More…
Another small 2D game created for a piece of coursework. This took about 8 hours to make while only using the Raphael library to put shapes on the screen.
Game Dev JavaScript
2016
Btrfs Backup (2016-2017, 2020)
Source
A backup suite designed for systems using a btrfs filesystem. Using the tools available for btrfs it is able to create atomic snapshots on the local machine, which can then be efficiently synced across to external drives, SSH servers etc.
Bash Btrfs Python
2015
UWDE (2015-2018)
Documentation Source
UWDE started as an internal project at Pragmatic to automate onboarding of WordPress websites. The project provides a Vagrant box with a Python web app which allows a user to access all the details about a client’s website and allows them to onboard a website locally with a single button, with the app doing everything necessary to get a copy locally, such as cloning a Git repo, downloading plugins/themes through SFTP, downloading the DB, updating the database with the local domain etc.
PHP Python WordPress
L2D
Read More…
A small 2D game completed for a piece of coursework. It took about 6 hours to make while only using the Raphael library to put shapes on the screen.
Game Dev JavaScript
2014
Esperanto Dictionary (2014-2015)
Source
An Esperanto dictionary app for the Ubuntu phone. This app was written as XSLT instructions used to transform 10,000+ XML data files into QML files that can then be run on the Ubuntu phone.
JavaScript QML XSL
2013
Bitcoin Touch (2013-2015)
Source
A Bitcoin client for Ubuntu Touch. Originally created using the bitcoinj library for the backend and QML for the interface. The backend was later converted to Python using the pycoin library, which gave us more control and flexibility in how we managed the wallet.
It was implemented as a full SPV wallet, that connected to Bitcoin’s P2P network and synchronised from block headers.
Bitcoin Python QML
2012
LiveView (2012-2013)
Source
LiveView allows you to take DSLR photos via a computer, and preview those photos on the computer screen before saving. This is useful for photography in a studio or anytime it can be useful to see a fullscreen preview on the computer while shooting.
GTK+ Python
2011
No new projects this year, but see the bars to the left for projects that I continued to work on.
2010
White Room Game (2010-2013)
Read More…
A first person maze escape game. This was the first game I ever created, written in Python using the Pygame and OpenGL libraries. Game Dev OpenGL Python
JaGUI (2010-2013)
Read More… Source Documentation
A GUI toolkit for Pygame developers. Easy and simple to use library, that allows game developers to quickly add GUI components into a new or existing game project.
The project has been praised for having an easy to use API and good documentation. It also supports OpenGL.
Game Dev
Python