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)

  • Web Assembly Fractal Generator

    A Web Assembly experiment to create a fast in-browser fractal generator in Rust and JavaScript using Web Workers and progressive rendering.

    view source

  • FUSS

    A functional CSS preprocessor built using Rust to be a simple yet powerful alternative to SASS.

    view source

  • Talklicker

    A small SPA built using Elm and Haskell for organising event days. Users can add projects or talks that they are interested in giving to a list, and then admins can create and describe days and drag things from the list in.

    view source

Latest Posts (see all)

  • Notes on Kubernetes

    Some notes I wrote up on Kubernetes from having attended the beginner and intermediate training courses hosted by JetStack at the Google building in London.


  • Rust: Getting started with nightly async/await support

    Async/await syntax is one of the most eagerly anticipated features coming to Rust. Already available in the nightly channel, this post contains my notes on how to get started with this new feature, and how to use it alongside the current Futures based ecosystem.


  • Rust: Converting AsyncRead and AsyncWrite to Futures, Sinks and Streams

    Recently I had another shot at using Futures and Tokio again in Rust. One of the main challenges I faced was how to work with things that implemented the AsyncRead and AsyncWrite traits. So, here are some ways to 'upgrade' them into Futures, Sinks and Streams to gain access to the various combinators provided by them.