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.


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 (12)...


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.