Hi. I am Kevin Mahoney.

I'm a software developer currently working freelance. I can adapt easily to most technologies, but professionally I have mostly been working as a web developer with Django, Python, Ruby, Rails, and Javascript.

I enjoy working on personal projects outside of work, and my interests include functional languages, type systems and type-driven development, and databases. I'm especially fond of using Haskell, Clojure, and similar technologies.


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 with Chef 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.