Adding Pushover notifications to Claude Code (2 mins read).
Writing a custom hook to convert a 'Claude is waiting for input' to a Pushover push notification.
Adding Pushover notifications to Claude Code (2 mins read).
Writing a custom hook to convert a 'Claude is waiting for input' to a Pushover push notification.
Week Notes 26#41 (4 mins read).
What happened in the week of 2026-10-05?
Logs as UX (12 mins read).
Looking at how logs being the main interface for understanding how tools work can be a blessing and a curse.
Minifying JSON with jq (1 mins read).
How to take a pretty-printed JSON string and replace it with a minifed JSON string using jq.
Gotcha: GitHub Custom Properties are public (2 mins read).

A known documented, but maybe lesser known, fact about GitHub Custom Properties' values and descriptions being available to anyone with read access.
Week Notes 26#40 (2 mins read).
What happened in the week of 2026-09-28?
A DECADE of writing on this blog (4 mins read).
Celebrating another massive milestone in my blog, and a short reflection.
Authoring Markdown externally and getting even 'prettier' output in Slack with md2slack (3 mins read).

Writing a tool, using Slack Block Kit, to write really pretty Slack messages, with syntax highlighting, tables and more.
Uploading a large OpenTelemetry trace to a local OTLP/HTTP traces receiver (1 mins read).

How to take a newline-delimited (.ndjson/.jsonl) file with OpenTelemetry traces inside of it, and ingest it into a local OTLP/HTTP traces receiver.
Week Notes 26#39 (2 mins read).
What happened in the week of 2026-09-21?
Getting a full-width PR review pane on GitHub temporary private forks (1 mins read).

How to improve your code review experience on a temporary private forks on GitHub, by making sure that the code is showed at the maximum page width.
Looking back at my first year as the Renovate Project Lead (20 mins read).

Reviewing some of the key highlights of my last year working as the Renovate Project Lead, and showing some stats about the project, its community and myself.
Week Notes 26#38 (1 mins read).
What happened in the week of 2026-09-14?
Updating apk add and apt install definitions in Dockerfiles with Renovate (3 mins read).

Sharing that Renovate 44.103.0 automagically parses apk add and apt install commands inside a Dockerfile.
Week Notes 26#37 (2 mins read).
What happened in the week of 2026-09-07?
Performing per-environment staged rollouts of dependency updates with Renovate (6 mins read).

How to gradually stage upgrades across environments (stored across multiple branches or on a single branch) with Renovate.
Week Notes 26#36 (2 mins read).
What happened in the week of 2026-08-31?
Exporting your chats from Claude.ai (1 mins read).
How to export the full chat history for a conversation on Claude.ai.
Week Notes 26#35 (3 mins read).
What happened in the week of 2026-08-24?
Determining if your branch is part of a GitHub Stacked PR (2 mins read).

How to work out whether you're on a branch which is part of a Stacked PR, and what position you are in the stack.
My new workflow for local code review with tuicr (5 mins read).

How I'm currently reviewing code from the terminal, using tuicr.
Updating dependent branches when rebasing, automagically (2 mins read).

How to use git rebase --update-refs to update dependent branches when rebasing.
Week Notes 26#34 (2 mins read).
What happened in the week of 2026-08-17?
What commit did I branch off from? (1 mins read).

Using git merge-base to work out what commit a given branch was branched off from.
I'm on Fallthrough: A Modest Proposal Proposal (1 mins read).

Announcing my appearance as a co-host on Fallthrough, talking about the Go proposal proposal and many other things.
Announcing some improvements to renovate-pretty-log-tui (2 mins read).

Shipping some large changes to my local tooling for interacting with Renovate debug logs.
Why I still hand write my commit messages (6 mins read).

Explaining why I still spend a lot of time writing my commit messages by hand.
Week Notes 26#33 (4 mins read).
What happened in the week of 2026-08-10?
GopherCon UK 2026 (15 mins read).

A writeup of the GopherCon UK 2026 conference.
Finding which PRs have been taken out of the Merge Queue due to failed status checks (2 mins read).

How to check which PRs were removed from the Merge Queue due to failed status checks, via the GraphQL API.
Week Notes 26#32 (2 mins read).
What happened in the week of 2026-08-03?
Week Notes 26#31 (2 mins read).
What happened in the week of 2026-07-27?
How much AI can a maintainer get away with using without losing their humanity? (8 mins read).

Thinking about the onslaught of AI-generated contributions, and if there is space for maintainers to "fight fire with fire".
Merging the default branch into a PR, from the API (2 mins read).

How to use the GitHub API to merge main (or the default branch) into a given PR, from the API.
Week Notes 26#30 (2 mins read).
What happened in the week of 2026-07-20?
Reducing overly nested Vendir paths (1 mins read).
How to use newRootPath to reduce overly nested paths for HTTP files being synced with Vendir.
Week Notes 26#29 (3 mins read).
What happened in the week of 2026-07-13?
Week Notes 26#28 (2 mins read).
What happened in the week of 2026-07-06?
Week Notes 26#27 (1 mins read).
What happened in the week of 2026-06-29?
Week Notes 26#26 (3 mins read).
What happened in the week of 2026-06-22?
Week Notes 26#25 (2 mins read).
What happened in the week of 2026-06-15?
Determining adoption of AI through Git commits (2 mins read).
How to determine the percentage of AI adoption, when attributing through Git commits.
Week Notes 26#24 (3 mins read).
What happened in the week of 2026-06-08?
Week Notes 26#23 (1 mins read).
What happened in the week of 2026-06-01?
Week Notes 26#22 (3 mins read).
What happened in the week of 2026-05-25?
Is there space for 'craft' in the world of AI? (10 mins read).
Replying to a friend's pondering about whether being a 'craft engineer' is still possible in the world of AI.
Week Notes 26#21 (2 mins read).
What happened in the week of 2026-05-18?
Week Notes 26#20 (2 mins read).
What happened in the week of 2026-05-11?
I'm on Fallthrough: He Who Controls the Source (1 mins read).

Announcing my appearance as a co-host on Fallthrough, talking about a mix of current affairs, including SHai-Hulud, the Open Source Resistance and more.
Caveats around using Libyears (5 mins read).

Why taking the Libyear metric at face value can mislead you, and suggesting a new metric 'Tempered Libyears'.
You're currently viewing page 1 of 26, of 1291 posts.