I'm a computer science researcher. I work on programming languages, with a particular focus on language features for supporting concurrent programming. I'm also interested in distributed systems and personal computing. I live in Glasgow, Scotland. I was one of the original developers of RabbitMQ.
Some of the content available in these pages:
Some of the projects I have worked on over the years.
Some of the tangents I've worked on—projects that aren't big enough for a page of their own.
Talks I have given (including slides and video where available).
I'm interested in interpretation, very generally, both the horizontal kind that crops up when two programs exchange data across a communications interface of some kind, and the vertical kind that appears when you have a host/guest relationship, such as that between a virtual machine and an operating system, or between a physical server and a hypervisor, or between an interpreter and a program, or between a program and its configuration files. Browsing around my projects, big and small, will give a more detailed view of the kinds of things I mean.
I've recently resumed writing blog posts at eighty-twenty.org about the things that have been occupying my mind.