Weeknotes for the week finishing Friday, 3rd April 2026.

Two weeks’ worth of weeknotes this week.

Last week I was in Oxford, celebrating the award of the Queen Elizabeth Prize for Higher and Further Education. This coincided with my five year anniversary at the Bennett Institute for Applied Data Science, which led me to reflect on my longest tech job. Team Prescribosaurus also met up to talk about our next cycle.

Last week and this week, I added a feature to OpenPrescribing v2: thumbs up/thumbs down buttons for quick feedback. Clicking either button prompts you for more information. It took me a couple of hours to add the feature with help from Codex, so this was the second time I’ve used Codex to write code. (The first time was in late February.) But it took me a couple of days to debug why it wasn’t working in production, between meetings and code reviews. Even now, I can’t pinpoint the root cause. I have a hypothesis, but the quick fix makes testing it prohibitively expensive.

It seems to me that this kind of bug — works in development, doesn’t work in production, insufficient context — is resilient to coding agents. Codex and ChatGPT helped, definitely. Looking back through my questions, I see that I very quickly learnt a lot about Cross Site Request Forgery (CSRF) and how Django protects against it. However, neither Codex nor ChatGPT were able to pinpoint the root cause. And neither was I.

I don’t think this kind of bug signals a win for humans or a loss for coding agents, or vice versa. I think it signals that coding agents can support humans by making debugging faster, more accurate, and more enjoyable (there are fewer dead ends). Human judgement is still important, though. Martin Fowler talked about this in a recent blog post. I’m going to read the blog post he linked to; “The Expensive Thing” by Ajey Gore.