I am Kevin Mahoney, I'm a software developer.

My interests include functional languages, geeking out about type systems, pondering databases, and daydreaming about game design. I'm especially fond of Haskell and Clojure.


The advantages and disadvantages of a log orientated architecture in PostgreSQL, including a simple blog application example.

Experimenting with a modern interface to documents on the web.

I weigh in on the age old debate of static vs. dynamic languages, and fix some misconceptions I've seen argued against type systems.

A short introduction to my structural editor project. Some advantages and disadvantages of structural editing.


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

Open Source Projects

  • StrictScript — A language experimenting with row-polymorphism.
  • 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.

Who I've Worked For

Mobile Vikings

I'm currently working for Mobile Vikings, a mobile virtual network operator based in Hasselt, Belgium. I'm helping them out with some Django.


I was the tenth hire at this YCombinator-backed, London-based payments startup. I mostly worked as a back-end Rails developer, but did a little DevOps too.


Maplecroft is a small global risk analytics company. I worked the full stack using Django and Javascript. A lot of work with maps.

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. I have made a full recovery.