Skip to main content

Posts

Showing posts from August, 2026

Beyond the Code: The Videos

I’ve given my Beyond the Code: Designing Services That Stand the Test of Time presentation a few times now. It started as a talk I put together for the ACCU Conference - which wasn’t accepted - and has evolved quite a bit as I’ve presented it to different audiences, and had conversations with people afterwards. The original idea was fairly simple. As software engineers, we spend a lot of time thinking about business logic. We think about the domain model and how to operate on it, the workflows, and the data. These things are obviously important, but a service is more than its business logic. The things around that logic matter too. How the code is structured. Where responsibilities live. How components communicate. How we expose functionality through APIs. How we deal with failures. How we observe what the system is doing. What we test, and how. These decisions can have a significant impact on how easy a service is to understand, maintain and change. Because while almost everything ab...

A Dedication Is What You Need

I really like Lukasz Quilter and his little band, they get into some fantastic scrapes. A Sound Inhuman has a gloriously gory beginning and then builds really nicely. I like a sci-fi story which creates lots of questions, which gradually get answered as the story progresses. This story has that in spades. However, there are two mysteries which go unanswered, and aren’t part of the setup for the next story, which is a shame. There are lots of characters to get your teeth into, which is great as they’re all quite different, and the dynamics between them work well. Personally, I can’t wait for the next Lukasz Quilter story. I hope it will be longer, with more Space Opera. I am a bit biased though, as the author is a long term friend and was kind enough to dedicate this story to me. A Sound Inhuman: A Lukasz Quilter Novel Ray Adams ISBN-13: ‎ 979-8198705548

A Review: Surrounded by Idiots

Surrounded by Idiots: Entertaining, Thought-Provoking, but Don't Take the Colours Too Literally Thomas Erikson's Surrounded by Idiots is one of those books that's easy to see why it became a bestseller. It's funny, engaging and full of memorable examples. It starts well with a sense of humour - the "keep the receipt" joke immediately sets the tone - and throughout the book Erikson has a knack for making behavioural psychology feel approachable rather than academic. One of the first ideas that struck me was his challenge to the Golden Rule. Rather than treating others as you would like to be treated, he argues you should treat people as they would like to be treated. It's a simple shift in thinking, but one with obvious implications for communication, leadership and relationships. The core of the book is the familiar DISC model, expressed as four colours: 🔴 Red – task-oriented extroverts who focus on results and action. 🟡 Yellow – relationship-oriented ex...

QUERY: We've been abusing POST for 20 years

In June 2026, a new HTTP request method, or verb, was introduced. RFC 10008 describes Query as: A QUERY requests that the request target process the enclosed content in a safe and idempotent manner and then respond with the result of that processing. This is similar to POST requests, but QUERY requests can be automatically repeated or restarted without concern for partial state changes. But what does that mean and why do we need it? What’s Wrong with GET? When we want to retrieve a resource from a RESTful interface, we use GET. It’s simple. It’s easy to use. A GET request has no defined request body, and it should be idempotent. That means we can make the same request over and over again without changing any state in the service. The response itself might be different if the resource has changed, but the GET request shouldn't be the thing that causes that change. Sometimes we need to add query parameters to a GET request. Perhaps we want to specify the maximum number of resources ...

RESTful APIs: Who Can See It, What Happens When It Fails, and When Is It Done?

I’ve been doing a kind of tour with my Beyond the Code: Designing Services That Stand the Test of Time talk. I’ve given it in Oxford, Norwich, Cambridge, London and York*, between February and August this year. I’ve really enjoyed giving it, but what I’ve loved the most is the feedback and the energy (sorry for the cliche) of the audience.  In Oxford they ripped my logging examples to shreds. In Cambridge I couldn’t convince anyone of the merits of sharing data - so I reframed it in terms of caching. In Colchester they were convinced that it was fine to return a success indicator in a HTTP response body - this resulted in me writing, Should HTTP Status Codes Reflect Business Outcomes? . And in London someone started arguing after just the second slide, but they, and the rest of the audience, went on to ask rich and engaging questions. In Norwich, my home city, and off the back of me describing what had gone on in Colchester a few weeks before, a couple of different people asked me...