8 min

Saying no

I said yes on a call last month while a voice in my head was very clearly saying don't. What I'd have needed in that moment wasn't courage.

Agency Careers
7 min

Deleting code

Three days on a retainer, removing things. The client asked what they'd got for it, reasonably and without any edge, and I did not have an answer ready.

Agency Culture
7 min

AVIF and the format question

Two things happened to image formats this fall, and the less exciting one is much more useful. I'd like a flowchart for choosing between them. I don't think one can exist.

Images Performance
7 min

Code review is teaching

I can still quote a review comment somebody left on my work in 2015, and I can also remember one I left last year that I'd like back, and neither of those is about whether the code was correct.

Culture Careers
6 min

Everything is a video call

I added up last week's calendar and it came to 19 hours, and I'd estimate that 11 of those hours replaced conversations that used to take two minutes and happen next to somebody's desk.

Remote Work Culture
7 min

Contrast ratios lie

A page I'd checked properly, that passed every automated tool I own, was unreadable on my own phone in a beer garden in June, and the number had nothing to say about why.

Accessibility CSS
7 min

Focus management

A full page load does a small piece of housekeeping nobody has ever had to think about. Swap content with JavaScript and you have quietly taken it on, almost certainly without noticing.

Accessibility JavaScript
6 min

Liquid is not a programming language

I spent a week being annoyed that the template language wouldn't let me do a thing, and then worked out that it wouldn't let anybody do that thing, on purpose, and that the restriction is most of why the platform works at all.

Shopify Ecommerce
6 min

It got slower while I optimized it

I added lazy loading to every image on a site in about 20 minutes, felt pleased with myself, and then measured it and found the pages were taking longer to show their main content than before I started.

Performance Images
7 min

Core Web Vitals is a client conversation

Eight years of losing this argument, because it was my opinion against somebody's feature. Then Google published three numbers with thresholds on them. That changes the politics far more than the engineering.

Performance SEO
6 min

The kitchen table

Two weeks and three days of working from a table that is also where I eat, and the thing I keep circling back to is that this was always possible and we were always told it wasn't.

Remote Work Culture
8 min

200 things at once

A change delivered all at once isn't braver than the same change delivered in slices, it just makes you unable to tell what you broke, and the web platform itself is the best argument for the slow way.

Culture