localghost
A good podcast: Twenty Thousand Hertz
A good podcast: If Books Could Kill
A good recipe: Ways with rhubarb
A good recipe: The best chocolate brownies
A good recipe: Smitten Kitchen's apple pie cookies
Touching grass (and shrubs, and flowers, and dog)
This page is under construction
The blog questions challenge
My month of rest and relaxation
I repaired my Steam Deck and it was fine, actually
2024: The year in lists
Some things I've been enjoying recently (November 2024 edition)
The art in everyday life
You should go to conferences
New garden theme
liveness probe
Different ways to mock third-party integrations in Jest
New keyboard alert! Mykeyclub MKC75
Twitter reply guys were bad, but Mastodon is no better
All Day Hey 2024, and some stuff I bought in Leeds
Upcoming talk: All Day Hey, Leeds - 2nd May 2024
Some things I've been enjoying recently
So you've decided to get into mechanical keyboards
Automated weekly links posts with raindrop.io and Eleventy
How I deploy my Eleventy site to Neocities
Sending webmentions from a static site
Just because you can doesn't mean you should: the <meter> element
Remembering the early 00s teen website scene
2023: The year in lists
Engineering progression for humans
Beautiful musical chaos
How to schedule posts in Eleventy
Building post types and category RSS feeds in Eleventy
Introducing separate category RSS feeds
"AI", and the trouble with inaccessible SaaS
Beyond Tellerrand: beyond amazing
Painting the whole beetle: an adventure in learning to learn
Everything should have an API: adventures in trying to automate stuff
I miss Twitter
2022: The year in lists
Preparing for conferences
Building a website like it's 1999... in 2022
Everything I googled in a week as a senior software engineer
When going back doesn't mean going backwards
Burnout, a cautionary tale (and a plea to take a break)
Start at the beginning: the importance of learning the basics
The right tag for the job: why you should use semantic HTML
A typical day: pandemic edition
Give yourself a break: lessons from burnout
7 myths designers and developers believe about web accessibility
Defending yourself against cross-site scripting attacks with Content-Security-Policy
ffconf 2019: future friends beside the seaside
Everything I googled in a week as a professional software engineer
Questions to ask at an engineering interview
Why software engineers should know their audience
Good links: 16 February 2025
Good links: 9 February 2025
Good links: 8 December 2024
Good links: 22 September 2024
Good links: 15 September 2024
Good links: 18 August 2024
Good links: 12 May 2024
Good links: 28 April 2024
Good links: 14 April 2024
Good links: 31 March 2024
Good links: 17 March 2024
Good links: 10 March 2024
Good links: 3 March 2024
Good links: 25 February 2024
Good links: 18 February 2024
Good links: 4 February 2024
Good links: 28 January 2024
Good links: 21 January 2024