Stuff I made


A simple Solitaire game, writen in PureScript, a Haskell-like language which compiles to PureScript.

Multiplayer Pacman

A multiplayer version of the classic Pacman game. The server and the client were both written in PureScript.


An efficient, general-purpose sequence type for PureScript. This library offers a data structure designed for use in PureScript code, in order to take advantage of immutability: giving benefits related to both time complexity of operations and memory churn.

Redmine release notes plugin

A plugin for the open-source bug tracking and project management system, Redmine.

King of the Network

The winning entry to the Edinburgh University GameDevSoc Game Jam 2013. The theme was ‘networks’. We used GameMaker, so there’s only an EXE file. It seems to work well under Wine though.

Down the Rabbit Hole

Won joint 1st place in the Edinburgh University Functional Programming Competition in 2013. It is a zoom sequence of the Mandelbrot set, written in Haskell.


A program for composing chiptune music. Reads a text file containing a description of a track in a purpose-built domain specific language, and turns it into music.

Tank game

Just a little game I put together in JavaScript. It runs in the browser.