September 12, 2026
Your AI provider is now critical infrastructure
Debugging production incidents when 95% of the code is written by AI requires more AI, so your AI vendor is now critical infrastructure—if they're down while you have a major incident, you're screwed. In the last year, AI agents have become...
ReadAugust 4, 2026
Writing and LLMs
I’ll be honest, I don’t like writing with LLMs. There’s something sad to me about the personality that gets lost when we produce text with LLMs. If you’re building product interfaces, an LLM can help you be consistent, but for prose, I think it...
ReadJuly 6, 2026
Data-driven business
I have the fortune of working at incident.io: a well-funded startup with founders that have technical background at high-performing companies, and a data team. Even when I started, we at least had a data team of 1. For a lot of organisations, that’s...
ReadJuly 3, 2026
Becoming spec engineers
Before LLMs, being able to deliver a high quality product at pace was largely a combination of product intuition and your ability to get into a flow state and churn out code. Of course, you had to make sure you were building the right thing, often...
ReadAugust 26, 2024
Scheduling posts on a static site
My blog is a static website, built using Jigsaw, and deployed onto Netlify. Recently, I’ve started publishing a lot more posts. However, I don’t write these posts at exactly that cadence. Instead, I tend to write my blog posts when I get motivated,...
ReadAugust 9, 2024
Lock propagation in Postgres
We recently encountered the error Deadlock detected (SQLSTATE 40P01) in some of our code at work, and it took us ages to figure out what had gone wrong. I’m writing this to share the non-obvious ways in which postgres can lock a row for...
August 6, 2024
Keeping technical debt at bay
Technical debt is just a fact of life. Over time, it can feel inevitable that our codebase degrades. But it doesn’t have to be that way. Yes, you will have technical debt, but you don’t need to let it grow out of control. Once you’ve paid down the...
ReadAugust 2, 2024
Accurate estimations in software engineering
One of the hardest problems in software engineering is estimating the effort of a project. We often throw around the advice of “just double whatever you think it’ll be”. And sure, that might work, but it won’t ever make you better at estimating....
ReadJuly 30, 2024
Effectively tackling technical debt
Every company grapples with “technical debt”. This debt accrues when quick, easy solutions are chosen over more robust, time-consuming ones. While these shortcuts help meet deadlines, they can also lead to messier and harder to maintain code. Over...
ReadJuly 26, 2024
Your relational database is good for it, really
I saw a tweet post on X the other week about using Postgres for everything, and it immediately made me go “YES, THAT”. So often, us engineers like to overcomplicate our setups. We get bored with the tools we have, and want to learn something new. Up...
Read