Hello there! I'm James. I'm a software developer working in Cambridgeshire, England.

Take a look at some of the things I've made or written about, or have a look at my github account.

You can contact me at

Latest Projects (see all)

  • Yap: Yet Another Parser library for Rust

    Yap is a small, well documented, dependency free library to help you parse strings and slices by extending the Iterator trait with a bunch of parser-combinator style methods. It tries to keep out of the way, and gives you everything you need to return detailed errors at every step.

    view source

  • Angu: A JavaScript library for building mini-languages

    A small, zero-dependency library that can be used to build and evaluate mini-languages in the browser or in NodeJS. You have complete control over every operation performed, and this library takes care of the nitty gritty of the parsing and such.

    view source

  • Weave: A CLI HTTP Router/file server

    A small CLI router that can merge several HTTP and file endpoints behind a single host/port under different paths. Built to enable quick hacking together of client files and APIs during development.

    view source

Latest Posts (see all)

  • A React Developer Tries Svelte

    After spending the last couple of years working primarily with React on the frontend, I was introduced to Svelte and was compelled to give it a go. Here are some of my thoughts.


  • Rust: Fun with Function Traits

    In this post I'm going to work towards writing a function that can accept and work with closures taking variable numbers and types of arguments. On the way, I'll look at trait families, and a way to avoid overlapping impls.


  • Notes on Postgres

    Various snippets of useful information and examples for PostgreSQL