Latest work

I recently completed a long term contract working on the Guardian’s new responsive site as a core front-end developer.

Currently in beta mode, the ongoing project of regenerating the site is built on mobile-first principles, fully responsive, device agnostic, accessible and performance-optimised, built with bleeding edge browser technology and rapidly evolving.

Working in an agile environment, across a number of teams during the tenure, making use of many modern front-end technologies — CSS3, SASS and BEM, AMD Javascript with RequireJS, Grunt, testing with PhantomJS, Karma and Jasmine.

Internal tools making use of Node.js, Python and Google App Engine, TeamCity and Github for continuous integration.

Later I was picked by the iPhone and Android teams to optimise the performance of the internal use of HTML and Javascript view rendering within by both apps — first benchmarking, then reducing load times and rendering speed, across a wide range of target devices and legacy OS versions.


Previous work

Permalink London Fields Triathlon Club

London Fields Triathlon Club

Built with Django and Twelve Factor principles, full-stack development — HTML, CSS, JS on top of Bootstrap. Initially built for purpose, later redeployed and themed for multiple sites.

View site

Permalink 100 Climbs

100 Climbs

Powered by the Strava API, built with Python and Flask, using a Heroku-ready framework (more below), with an AngularJS front-end implementing Google Maps.

Permalink College Garth Kennels

College Garth Kennels

Python powered Google App Engine site, content-managed by way of the Flickr API with a simple HTML, CSS and Javascript and Ajax front-end.

View site

Permalink Hooply


Front-end build for the web version of the iPhone app. Custom Masonry-style layout, templating with purpose-built Node.js on Nodejitsu, Express and Mustache stack (more below).

Permalink Online learning

Online learning

Significant contribution to a large scale AngularJS build, with a strict modular approach to JS (AMD) and CSS (OCSS) to enable 20+ teams and 100+ developers to collaborate with reusable code.

Permalink Second screen

Second screen

Web interface for a second screen application, presenting Twitter and Facebook data with D3 graphs, SVG and CSS animation, built on Backbone and RequireJS.

Permalink Dr. Martens

Dr. Martens, First & Forever

Front-end contribution to a Google Maps mashup leveraging both Facebook API and Twitter API live search.

View case study

Permalink Beats Per Mile

Beats Per Mile

Tracking a friend's marathon. Hacked Runkeeper API updating her progress on Google Maps, posting updates and mile splits to Twitter, pulling Instagram photos as she passed landmarks and streaming her iPod playlist via Soundcloud. Donations from the Just Giving API.

View site


Front-end CMS builds

BBC Radio 1 Chris Moyles
BBC Radio 1 Annie Mac

BBC Radio 1 and 1Xtra DJ pages

Front-end build for the redesign of 70+ home pages for DJs across BBC Radio 1 and 1Xtra.

Modular build enabling sites to be deployed in waves as each DJ recieved a new design treatment. Each styled with a combination of hand-rolled CSS themes, where icons, colour and typography treatments were shared across the DJs' music styles, genres and time slots.

Working with a handful of native APIs for implementing ratings and comments, also making use of the BBC's Glow javascript library.

Mapping & Webb
BBC Orchestras

Large-scale CMS

Many projects working with a range of popular CMS solutions such as Joomla!, Drupal, Magento and ExpressionEngine, with development on both sides of the browser.

Providing front-end builds with in-house systems, such as the BBC's Programmes and Music linked data platforms and their Festivals engine, which makes use of XML and XSLT.

Recently two sites for the Aurum group using the Hybris e-commerce platform — developed in parallel from a single server-side codebase to produce two visually unique outcomes.

View Goldsmiths site
Case study

View Mappin and Webb site
Case study

Farm London
Mulberry Gigs

Small sites and blogs

Regularly working with Wordpress producing custom builds or creating themes, similarly Tumblr outfits.

Alternatively using static site generators such as Jekyll,, Cactus and Roots, with a number of small go-to open-source frameworks for Python and Node.jssee more below.


Open-source projects



Twelve-Factor Django application skeleton, using gunicorn and honcho.

View repo



Twelve-Factor Flask application skeleton, using gunicorn, honcho and fabric.

View repo


Simple Express template server

A simple Express framework for rendering templates with JSON data using Mustache and a handful of Node.js tools.

View repo


Simple Flask template server

A simple Flask framework for rendering templates with JSON data using jinja2. Basically a refactor of simple-express for Python.

View repo


Google App Engine static sites

Host multiple static sites with a single Google App Engine application. Python-based, using webapp2.

View repo


GD filters

Instagram-style filters, server-side image manipulation with PHP & GD.

View repo


Webfaction configs

Various configuration files, cron, nginx, supervisord.

View repo



Including bash, vim and git.

View repo