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.

I'm currently looking for remote work, contract or permanent. Next year I'm considering a move to Amsterdam, so I can potentially work on-site there.


Two essential developer skills.

When should you use tests and when should you use types? What information and guarantees do we get for our efforts?

The advantages and disadvantages of a keeping data around, including a simple blog application example in PostgreSQL.

All articles (13)...


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

Github Projects

Open Source Projects

  • funscene — WebGL animations.
  • 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

A mobile virtual network operator based in Hasselt, Belgium. I helped 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.