Understanding build stages.
Some useful information on core Drupal 8 caching.
An overview of how composer works and what it does.
Making your Git experience a little better.
A primer on using the Python lxml library.
How to write more comprehensive tests for your SCSS.
A simple guide to fixing common web form issues.
How having a process to define your work can help you make better things.
An argument for having ownership of the things you create.
An experiment in accelerated publishing.
A summary of a short talk I gave at Codebar and Talent2017 for people looking to break into the tech industry.
What lies between real news and fake news?
A summary of the CSS flexible box layout mode.
Making links usable and accessible for all.
A principle for decision-making.
How to use local provisioning with Ansible to set up your CircleCI environment.
An outsider's launch postmortem and speculations on Pokémon Go.
The process we used to deliver a great new site for the Rock & Roll Hall of Fame.
What is the mark of a high-quality website?
A note on my experiences at Render conference 2016.
I get angry about people getting angry on the internet.
A primer for displaying transliterations accurately on the web.
I cancelled my LinkedIn account years ago because of their dark patterns. In case you were looking for my profile, this post explains why.
What I've learned running Agile projects in the real world.
How I make coffee with a hand grinder and an Aeropress.
How I set about curing my news addiction with RSS feeds and e-mail.