Kevin Mahoney

My interests include functional languages, type systems, databases, relational database design and game programming. I'm especially fond of Haskell and Clojure.

Work In Progress

Structural Editor

Structural Editor

A structural code editor and IDE that operates directly on abstract syntax trees instead of text files. Operates on a simple custom language that compiles to JavaScript.

Uses ClojureScript, ReactJS and Huet zippers.


Roguelike Game

A game of the roguelike genre written in C++. Still in the prototyping stage so nothing to show yet!




A toy compile-to-JavaScript language with a structural, fully inferred type system. This was mainly written to play around with row polymorphism, which seemed like a pretty good fit for a JavaScript-like language.

Written in Haskell.

Github: StrictScript

Pool tracker

Pool Ball Tracker

A fun side project at GoCardless to track pool balls with a GoPro camera. More information in the write-up.

Uses C, C++ and OpenCV.

GoCardless: Pool Ball Tracker

Data Story

Data Story

A runner up in a World Bank competition entry that visualises climate change data provided by the World Bank API. A SpineJS, javascript-heavy web application with a Flask back end.

Worked on in collaboration with Decio Battaglia and Xiaoying Riley of 3rd Wave Media.

YouTube: Data Story



A simple, free “lights-out” puzzle game released to the android market.

This was my first Android app and my attempt at learning Android development by creating a very simple game.

The objective of the game is to turn out all the lights. Pushing a light toggles that light and four surrounding ones. The levels are randomly generated each time and gradually increase in difficulty. You must complete a level within a certain number of moves or you lose a life.

Written in Java with the Android SDK.

Android Market: Eluminate

Github Projects

Other Projects

  • kpm-list — An Emacs buffer list.
  • Django-bulk — Bulk insert/update for Django.
  • Dochi — Concatenative language interpreter.
  • Roots — Python web framework.
  • DRel — Relational algebra for Django.
  • pyhandy — Some handy Python stuff.
  • Convolution — Sound file convolution.

Work History


I was the tenth hire at this YCombinator-backed, London-based payments startup. I mostly worked as a back-end Rails developer with a short stay in dev-ops using Chef. I worked at GoCardless for one and a half years.

My achievements include introducing an authorisation server for a more service-oriented architecture and writing the back end and migrating customers to a new and improved dashboard.

Buzzwords: Ruby, Rails, Chef, PostgreSQL, Elasticsearch, SOA, Cloud, AngularJS, RabbitMQ, Redis


Maplecroft is a small risk analytics company. I worked as a back-end Django developer on their main website and many smaller projects, with some front end Javascript work. I worked here for one and a half years with a team of six developers and two designers.

My main responsibility was producing customised dashboards for large Maplecroft clients involving interactive maps and other visualisations. I was also one of two developers leading the Sedex Risk Assessment Tool project.

Buzzwords: Python, Django, MySQL, CouchDB, Javascript, Leaflet, Mapbox

Switch Call Ltd.

I worked for this (now defunct) telecomms startup for two years. I produced some websites, SMS and telephone tools in PHP and ASP classic.

Buzzwords: PHP, ASP classic, SMS