About

I’m a programmer. In the quest for interesting things to program and good tools to use, I’ve learnt a lot about natural language processing, compiler theory and implementation, parsing algorithms, type systems, dependent types, and web development. I like using Haskell and Ruby, but know that we can do much better than either of these.

I used to be a university lecturer. Parts of the job were interesting, eg working on some very advanced and new ideas, following my own projects, working with good students, but there came a time when the only programming I was doing was to set course assignments. Then I had a great experience teaching Ruby on Rails to some MSc students, and realised that some kinds of commercial programming really can be fun. So I now work as an eCommerce consultant, using the Spree platform – and I’m also a member of the Spree Core Team.

I have a PhD. This was obtained whilst working on a large natural language processing system, and my thesis was a detailed investigation into its performance in an international competition for information extraction and a discussion of what other evaluations can be done.This system was (in the 1990s) the world’s second largest Haskell program. After my PhD, I had an excellent chance to work in an area that combined NLP and Haskell, and so started work applying dependent type theory to analysis of mathematical texts.