I'm a software developer with an interest in functional programming, language design, type systems, databases and database design.

I'm currently working in Bristol, UK for OVO Energy (CV).

Articles

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

All articles...

Projects

Kuljet

Kuljet is a happy little language for writing database-backed HTML applications. Its type checking and integration with relational databases should help you whip up prototypes in no time.

OCellator

A spin-off of the OCell structural editor project for writing synths with a lispy flavour.

OCell

Another attempt at structural code editor.

Squee

Squee is an experimental language that breaks relational queries down in to composable functions that can be fully inferred with a few extensions to Hindley Milner. It compiles to SQL and so can be used with relational databases.

Structural Editor

A structural code editor and IDE that operates directly on abstract syntax trees instead of text files.

Document Rendering

An experimental way of rendering web documents.