I’m a software engineer residing in Yorkshire, England. I currently work at Unsplash, and previously worked on the team behind theguardian.com and the Guardian's web based content management system, Composer.
Being passionate about the open web, I aim to work on software that exploits the decentralised nature of the web to solve non-trivial, critical problems. With a strong background in arts as well as engineering, I approach web development in its entirety: UX, performance, and functional programming are some of the things I enjoy most. I also love the art of photography as a tool for life documentation.
Things I’ve built
- Scribe, a web rich text editor, built for the Guardian's CMS
- Sbscribe, a social news and feed reader.
- the Guardian’s offline page
- Chrome extension for editing URL query parameters, written in Elm
- Chrome extension for easily viewing and switching A/B tests on theguardian.com, written in Cycle.js
- a seed project for creating a blog using TypeScript
- a simple offline blog to demonstrate service worker capabitilies
- a dashboard to easily view deploys of theguardian.com, written in TypeScript
- the Guardian’s developer site
Talks
Building an offline page for theguardian.com
Native apps have long had tools to give users good experiences when they have poor internet connectivity or none at all. With service workers, the web is catching up. This talk demonstrates how I built the Guardian’s offline page.
Building a CMS for the responsive web
In light of responsive web design, people often focus heavily on how content should be rendered, but how it is produced is usually overlooked. This talk reviews how the challenges of responsive web design can bleed into issues of content production, and how the Guardian solves these issues with Composer – our web-based, digital content-management system.
Posts
2018
2017
2016
Gutters for flexible components with sliced padding
Page jumping caused by images
Pitfalls of the img element for serving responsive images
Reactive programming in JavaScript: modelling values which change over time using Observables
Morph animation between positions using FLIP
An anxious young software developer
2015
2014
2012