Skip to main content

Posts

Should HTTP Status Codes Reflect Business Outcomes?

I’ve delivered my Beyond the Code: Services Which Stand the Test of Time presentation a handful of times this year. Toward the end of the first half, I take a stronger stance and talk more directly about the design of RESTful interfaces. Most of the material in the presentation is framed as guidelines rather than hard rules. However, the RESTful section leans much more strongly toward rules, and there’s one rule in particular that I consider non-negotiable: Never, EVER, use a field in a response to indicate success! Then I show this example on the next slide of why you shouldn’t do it: Just in case it isn’t immediately obvious, there is a conflict here between the HTTP status code of 200 , indicating everything is OK, and the success field in the response body saying that it isn’t. Usually this gets a knowing, sometimes uncomfortable laugh from the audience, but not tonight in Digital Colchester. One audience member challenged this stance with a question I’ve been thinking about since...
Recent posts

Foundation an Earth

I really enjoyed Foundation’s Edge and I had great expectations of Foundation and Earth.  I was disappointed. About 90% of the story just plods on. Then the last 10% is really good, but goes super fast. I think part of the problem is that Asimov was told to write longer books and this has resulted in padding in the form of the character constantly discussing and rediscussing the same points. More frustratingly, it doesn’t finish the psychohistory story and there are no further books in the series. Written only six years before the author's death and followed by two sequels, perhaps there just wasn’t enough time. Some of the sexism from the earlier books is back. It’s very much a book of its time and Asimov's apparent attitude. With Foundation done, I’ll be progressing to Asimov's robot books. Isaac Asimov ISBN-13: 978-0008117535

The Gathering: Great Band. Great Set. Great Venue. Great Sound!

Great Band. Great Set. Great Venue. Great Sound! Need I say more? I will… We loved the Shepherd's Bush Empire the first time we went in December 2023 for Paradise Lost and My Dying Bride, so we were really excited to be going back. It didn’t disappoint. We had some good seats in the balcony and the sound was so much clearer than a lot of other venues we have been to over the last few years (I’m looking at you, The Roundhouse!) The openers were a French three-piece metal band called Lizzard, who were completely new to me. They were progressive, heavy enough, and incredibly tight. Their songs were long, with extended instrumental sections, which I really enjoyed. I loved it! I’ll definitely be listening to more. I’ve been into The Gathering since I heard Nighttime birds. I like all of their albums, but my favorites are the Anneke van Giersbergen era including Mandylion, How to Measure a Planet, If Then Else and Souvenirs. I first saw them around the time of How To Measure a Planet, s...

Help Shape My Research - Your Input Matters!

I’m currently working on a new piece of writing that I’m hoping to present next year, and I’d really value your input.  To support this research, I’ve created a short survey to gather perspectives, experiences, and insights. Whether you’ve got strong opinions or just a few minutes to spare, your response would make a genuine difference. Why take part? Your feedback will directly contribute to real research It only takes a few minutes to complete You’ll be helping shape something meaningful and (hopefully!) impactful I’m aiming to build a deeper understanding of the topic, and every response helps create a clearer, more balanced picture. Take the survey here:   https://forms.gle/VCqJdJz248awjyjNA Thank you so much for your time and support, it’s greatly appreciated!

Clean Architecture is both a product of its time and a set of ideas that transcend its time.

For a book divided into small, discrete and easily absorbable chapters, there’s a lot of Clean Architecture.  Its strengths are the discussion of the SOLID Principles, Compensation and insistence on abstract interfaces, encapsulated concrete interfaces, loose coupling and cohesion - every software engineer should read it just for these. Its weaknesses are the verbosity and its heavy bias towards object orientation and dependency injection, but then it’s a book of its time. The open minded reader will see through this and realise that Clean Architecture is applicable and applicable everywhere. There’s a long appendix which, although quite self indulgent, is actually really interesting and I’m glad I persevered with it. Clean Architecture: A Craftsman's Guide to Software Structure and Design: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series) Robert Martin ISBN-13: 978-0134494166

London Tech Leaders Summit 2026

When One Beyond invited me to take part in the London Tech Leaders Summit, I wasn’t quite sure what to expect. What I definitely wasn’t expecting was a seven‑foot robot interrupting the opening welcome. As the doors flung open, the robot ducked to fit through, marched to the side of the stage, interrupted the speaker, and proceeded to continue the welcome itself. It was initially a little unsettling, but to be fair, its jokes were better. What followed was a full day of presentations, panels, roundtable discussions, and workshops. All were framed through a leadership lens and all centred on AI. I know what you’re thinking: not another AI conference. But this one really stood out. Rather than theoretical hype, it was software leaders - many in similar roles to mine - openly sharing what they’ve learned from using AI, where it’s taken them, and how it’s shaping their organisations. There were several highlights. Hywel Carver , CEO of Skiller Whale , made a particularly memorable point:...

Deep Imports Are Not Faster

I wrote Deep Imports Considered Harmful for two reasons. Obviously to persuade people not to use deep imports, but I also wanted to reinforce that components should have an abstract interface and an encapsulated concrete implementation. I was expecting some pushback, but all I got was something I should have seen coming and covered in the original piece. Here’s the follow-up to get it covered. Every time you tell someone that deep imports are a bad idea, there’s always one reply waiting in the wings: But deep imports perform better. It sounds plausible. It feels intuitive. But it’s wrong. To be fair, this myth didn’t come from nowhere. In the past, some libraries really did ship poorly structured entry points with giant index.js barrels with side effects, no tree‑shaking - a build‑time optimisation that removes code you never use from your final JavaScript bundle - support, and no clear separation between public API and internal implementation. In those cases, deep imports sometimes ...