Some witty headline about me

Experienced Software Engineer with a demonstrated history working in the Web industry. Skilled in JavaScript, Node.js, Three.js / WebGL, Vue.js, React and much more. Specialises in prototype and concept work, Web application development and both geospatial and data visualisation.

Key skills

Vue.jsNode.jsJavaScript (ES6)Mapbox GL JSViziCitiesWebGLThree.jsPostGISturf.jsQGISGDAL

Notable work


3D WebGL geospatial library

A framework for 3D geospatial visualisation in the browser using JavaScript and WebGL.

Polygon City

Open CityGML tooling

Suite of geospatial tools for validating CityGML and converting it into 3D file formats such as obj and collada.


HTML5 Canvas multiplayer game

Browser-based multiplayer game using HTML5 canvas and JavaScript WebSockets.


HTML5 Games Most Wanted


Wrote the introductory chapter to this book on HTML5 game development.

HTML5 Canvas Feature

Web Designer Magazine

9-page featured article on HTML5 canvas.

HTML5 Canvas Tutorial

.net Magazine

4-page tutorial on HTML5 canvas.

Foundation HTML5 Canvas


First book, teaching developers new and old about HTML5 canvas, animation and game development.

Notable experience

Contract JavaScript Developer

WCMC, Remote (2018)

Remote contract role working for a prominent global environment and conservation charity.

  • Front-end Web application development and data visualisation using latest ES6+ JavaScript
  • Vue.js dashboard application built from scratch
  • Modifications and additions to legacy Vue.js applications
  • Migrating existing maps to WebGL 3D mapping technology (Mapbox GL JS)
  • General data visualisation using bespoke SVG
  • Limited work using Ruby
  • Geospatial processing using PostGIS, turf.js, MBTiles, tippecanoe, GDAL, etc.
  • Focus on cross-browser compatibility with a mobile-first approach

Senior Software Engineer

UrbanSim, Remote (2016—2018)

Remote role working with a small team spread across the US, UK and Argentina.

  • Full-stack development using latest ES6+ JavaScript
  • Large Vue.js Web application built from scratch
  • Deep experience with WebGL 3D mapping technology (ViziCities and Mapbox GL JS)
  • Lots of Node.js server-side work (incl. Express, queues, child-processes, etc)
  • Database management using Postgres and Knex
  • Geospatial processing using PostGIS, turf.js, MBTiles, tippecanoe, etc.
  • Tests created using Karma and Mocha
  • Focus on both client and server-side performance, stability and security

Founder & JavaScript Developer

ViziCities, Remote (2013—2016)

A framework for 3D geospatial visualisation in the browser using JavaScript and WebGL.

  • Entire software platform created by myself
  • 3D engine powered by Three.js (WebGL)
  • Huge focus on millisecond-level performance within a Web browser on various hardware
  • Open-source project that has been used by organisations in production
  • Contract work with clients such as Transport for London and real-estate

Contract JavaScript Developer

Mapzen, Remote (2014—2016)

Contract work for Mapzen, a mapping software company.

  • Personally responsible for building a set of large geospatial applications
  • Created tooling that validates CityGML and converts it into 3D file formats such as obj and collada
  • Created the front- and back-end infrastructure for a library of open building models
  • Key technologies: JavaScript (ES6+), Node.js, Express, WebGL, Three.js, CityGML

Head of Developer Relations

Pusher, London (2013—2014)

Leading Pusher's Developer Relations activities.

  • Acting as the interface between customers and the internal product team
  • Speaking at public events
  • Managing promotional items for Pusher customers (t-shirts, stickers, etc)
  • Writing technical posts and tutorials for the company blog
  • Building demos that promote Pusher as a service
  • Answering escalated technical support issues
  • External communication and community management via Twitter
  • Organising internal hack days

Technical Evangelist

Mozilla, Remote (2011—2013)

Worldwide developer relations for Mozilla and Mozilla Firefox.

  • Responsible for game-related developer outreach
  • Learning and working with the latest Web technologies
  • Speaking at large developer events across the world
  • Writing articles for the Mozilla developer blog

I wrote the book on it. Literally…

Foundation HTML5 Canvas: For Games and Entertainment teaches you how to make exciting interactive games and applications using HTML5 canvas. Canvas lets you produce graphics, animations, and applications using the latest HTML5 and JavaScript technologies.


  1. Introducing HTML5
  2. Foundation JavaScript
  3. Learning the Basics of Canvas
  4. Pushing Canvas Further
  5. Manipulating Images and Video
  6. Making Things Move
  7. Implementing Advanced Animation
  8. Creating the Space Bowling Game
  9. Creating the Asteroid Avoidance Game
  10. Taking Things Further and the Future of Canvas

Buy on AmazonBuy on Apress