8 min

Things I unlearned

I read a post I wrote in 2015 and found the person who wrote it insufferable. That turns out to be the useful part of keeping an archive for 11 years.

Culture Careers
7 min

.gitignore

A live payment key in a tracked `.env` file. The repository had `.env` in its `.gitignore`, and had done for two years.

Git Security
6 min

The test that would have caught it

The same bug arrived twice, 18 months apart, on the same client site, and the second time I found my own fix from the first time sitting in the git history with no test next to it.

Testing
7 min

Ask a question that gets answered

Two questions went into the same channel within about ten minutes of each other. One got a useful answer in four minutes. The other is still sitting there, and the difference wasn't the difficulty.

Careers Culture
6 min

currentColor

I opened a button component with 11 color declarations in it, across four variants, and the correct number was one per variant, because six of those properties already default to the thing they were being set to.

CSS
5 min

Everyone says they're faster

Three people in one standup gave three different multiples for how much quicker they've got, none of them had measured anything, and I sat there working out whether to say that I genuinely don't know if I'm faster at all.

AI Careers
7 min

Web sustainability

Three years of declining performance work. Then the same list of changes, approved in two weeks, because it arrived under a sustainability heading instead of a technical one.

Performance
6 min

The agent wrote a test that passes

I asked for test coverage on a module that didn't have any, got 14 tests back, and all 14 passed, and about half of them could not have failed under any circumstances whatsoever.

AI Testing
6 min

text-wrap: balance

A card grid where, at exactly one breakpoint, one heading broke with a single word on the second line, and the fix used to be a non-breaking space typed into the content by a person who'd have to remember forever.

CSS Typography
6 min

Anchor positioning

When I wrote about the popover attribute I said the positioning half hadn't arrived and you'd still need a library for it, and it has now arrived in one browser, and it deletes the library completely.

CSS
6 min

Dependable and boring

Everybody wants to build the new thing, but the web runs on old software that somebody unglamorous is keeping alive, usually for free and usually without being thanked.

Culture Security
7 min

Technical debt is a bad metaphor

Somebody asked how much technical debt we had, wanting a number. Nobody could give one, and not because we hadn't measured. The question doesn't mean anything; the metaphor makes it sound like it does.

Culture