Skip to main content

Posts

Showing posts from 2026

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...

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 ...

Back to Basics: Why the principles that built our industry still matter today

Looking ahead to next year, I want to talk about Abstraction, Encapsulation, Cohesion and Loose Coupling as it seems they are missing from a lot of modern software design. Back to Basics: Why the principles that built our industry still matter today There are only three things certain in life: death, taxes, and constant change in software. For decades, we’ve tried to limit that change. Up‑front design and predictive methodologies promised control, but too often delivered the wrong software for the user. In the late 90s, Kent Beck urged us to embrace change through methodologies like Extreme Programming and concrete practices such as Test‑Driven Development. These weren’t trends, they were reminders of fundamentals we already knew. Design behind interfaces. Keep responsibilities narrow. Make dependencies replaceable. These boundaries matter, from functions and classes to services, systems, and infrastructure. These ideas have been with us since the 60s and 70s. The challenge isn’t inven...

Deep Imports Considered Harmful

Keep It Loose Deep down we all know it’s important to componentise software systems.  It allows different parts of the systems, the components, to change and evolve over time with minimal effect on other parts of the system. Designed and implemented correctly, components are loosely coupled , as well as highly cohesive .   In practice this means that components can be changed, replaced, or evolved independently, without causing widespread change throughout the system. Components with responsibilities, and that naturally change together, are grouped together. Components have abstract interfaces and concrete implementations. Interfaces describe the features provided by a component and hide the concrete implementation. Users of components - usually other components - depend on the interface rather than the concrete implementation. If clients come to depend on concrete implementations - the internal details of a component - the benefits of componentisation are lost. The comp...

Persepolis Rising

Persepolis Rising is set thirty years later and goes off in a different and uninteresting direction. It is of course possible that the entire book is setting up the story for the final two to be brilliant, but the story arc is only referenced in the epilogue. At the beginning the story makes the reader feel that there is no resisting the invading forces and initial resistance attempts fail and result in surrender. However, by far the best part of the book, other than the epilogue, is when Holden’s team find a way to hijack one of the invader’s ships. There are only two books to go, maybe it will pick up.

Configuring Claude Code to Enforce Your Own Guidelines

I’ve been using Claude Code without many rules for a while. It’s certainly not the most efficient or effective way to use it. With its help, I learnt how to create some persistent rules around logging. When we’d finish I had Claude produce this blog post. It’s been reviewed and revised by me. See what you think. The Problem with Tribal Knowledge Most teams have coding guidelines. They live in many places, including wikis, onboarding documents, and the heads of senior engineers who will politely point out in code review that you shouldn't log the request body. The problem is that guidelines only work if they're applied consistently, and consistency requires either constant vigilance or automation. I wanted to find out whether I could move my team's logging rules out of a document and into the tool itself, so that Claude would apply them automatically, every time, without being asked. Two Mechanisms Worth Knowing Claude Code offers two complementary ways to encode behaviour: ...

AWS Summit London 2026: And now for something a bit different.

I always look forward to the AWS Summit. It’s a great opportunity to learn what AWS, and the engineers who use it, are up to, and to catch up with my colleagues. This year, though, turned out to be a bit different. The first year I attended, I skipped the keynote entirely and spent the time in the AWS labs instead. Last year I did go to the keynote, and wished I hadn’t. This year I attempted to do both, but it didn’t really work. I managed just one very simple lab before I had to leave for the keynote. Although I did manage to get to the Red Hat stand early and be the first to get an actual red hat! Although I did have to carry it around all day and all the way back to Norwich that evening.     One of the main issues is the size of ExCeL. It’s big. I mean really big. You may think it’s a long way down the street to the chemist, but that’s peanuts to ExCeL. It’s a long way from anywhere to anywhere else. Poor Hitchhiker’s Guide to the Galaxy references aside, many things, inc...

Log Judiciously

Judiciously: With good judgement.  Logging is one of the simplest things a developer can do, and one of the easiest things to get wrong. A single misplaced log line can be harmless, but a pattern of careless logging turns into noise, confusion, and even security risk.  The challenge isn’t teaching engineers how to log, it’s helping them understand why they’re logging in the first place. Here I intended to draw that distinction clearly: choosing logs that illuminate behaviour, support debugging, and reveal failures, while avoiding the chatter, duplication, and reassurance‑driven messages that bury the real signals. Finding the Line Between Useful and Noisy Teams often fall into the trap of believing that if they simply “log enough,” the rest of observability will take care of itself. It’s an appealing idea: produce a steady stream of detail, let dashboards and alerts sift through it, and assume that somewhere in the noise the truth will reveal itself. But this mindset skips th...

5 minutes with Winterfylleth (again)

I know what you’re thinking. Didn’t I do this not long ago? It’s true, I did . Less than 18 months ago in fact. And if Winterfylleth releases another album and does an album launch in the next 18 months I’ll go and do it all again. I left work at 2pm, got the train to London, the Underground to Cambden and spent all of five minutes with the band. I had the latest album signed - which I have twice now, on CD and on vinyl which I collected from Raven Records this evening - my ARD  (mark Deeks' band) CDs and record signed, and all my Necronautical  (Rust Ob Sun's band) CDs signed. They all did the Metal pose, I see them do on social media, with me. They were all very accommodating, which made my week and is why I go! Mark Deeks was there this time, and it was great to meet him in person after much messaging on social media. It was good to meet Rust Ob Sun for the first time too! His Facebook posts are great. In a flash it was over and I was heading back to Norwich, via a few ho...

The Forcek Assignment

  I loved The Forcek Assignment! I’ve read most of Ray Adam’s books and this is by far my favorite so far. It’s short, at about 110 pages, but that means it’s fast paced. There are only a few characters, so you only really get to know Roo Raker, but that’s enough. It has a plot which would be at home in any The Original Series Star Trek film, a mysterious red head and a couple of twists I should have seen coming and didn’t. I’ll never understand Ray’s obsession with creating characters who smoke, but that’s no detractor, and I was left with just one question - well lots of questions, but one big one - why is Roo Raker’s name never shortened?! The Forcek Assignment! Is the first of a trilogy, and I have the second lined up already. Ray Adams ISBN-13: ‎ 979-8679926462

Take a Little Piece of Paul & Charlotte Home

Over the last 18 months, the support you’ve all shown for my writing, speaking, and the journey Charlotte and I have been on has meant more than I can ever say. Every message, every share, every bit of encouragement:  it’s carried us. So we’re delighted to offer something special in return: a little piece of us that you can take with you and love forever. Meet the Paul & Charlotte Plushie Soft, cuddly, and created with so much care, this plushie is designed to bring a smile wherever it goes. It comes complete with: A miniature Paul plushie — glasses, beard, and all the familiar charm A tiny Charlotte companion plushie — warm, cheerful, and full of heart Matching accessories that tie the whole set together and make it perfect for gifting, traveling, or simply keeping close Whether you’ve followed our journey from the beginning or only recently joined us, this plushie is a lovely way to keep that connection alive. Get Yours Here https://paulgrenyer.com/shop   Thank you ...

Stop! Shower Time!

Naked Element to reward team for taking showers. While there is a lot to be said for meeting a problem head on, research has shown that removing oneself from a difficult task, even for a few minutes, can make all the difference when it comes to finding a solution. Engaging in a less mentally challenging activity frees the mind and allows it to consider different pathways and directions. How many times have you struggled to remember the name of a contact, only for it to come to mind while putting the kettle on? Or been stood in the shower and come up with a new way to tackle that tricky code issue at work? Back in the dim and distant past, our director Paul Grenyer lived in Leeds and worked as a software engineer in Sheffield. It was an 80 mile round trip by car everyday, not something that he relished, but that turned out to be his best time for solving software problems (the copious amounts of Black and Symphonic Metal he listened to while driving may have also helped, but that’s anot...

Winterfylleth - The Unyielding Season

The Imperious Horizon came out on the 13th of September 2024. 18 months (and 2 days) ago. Of course that’s not a long time between albums, especially with bands today - it’s been nearly 8 years since the last Dimmu Borgir album - but it’s also felt like forever waiting for The Unyielding Season. One of my favorite bands, I return to Winterfylleth again and again. The Unyielding Season opens with a single symbol hit which immediately draws you in! In the middle of the album the acoustic guitars come out and are fantastic. It feels like there’s a new level of intensity throughout, even during the orchestral bits. The lead guitar is better than even, but what really stands out is the richer drum sound. The version of Paradise Lost’s Enchantment, the bonus track, is something else! More layers than the original. Longer than the original. The piano is more haunting and Mark Deeks’s vocals are great! I’m only on my third listen, but already this is a great album. 

What I Learned Sharing Product Experiments with City College Students

  A few months ago, Shaun Lowthorpe put out a call on LinkedIn for people willing to share real‑life experiences of using business analysis at work. Although I haven’t done what you’d call traditional business analysis for years, I work in a Product led organisation, and I love getting up in front of a room and talking. So I volunteered, and Shaun kindly accepted. I wanted to show how we use tools like Amplitude to test and measure the impact of user interface enhancements. After chatting with colleagues, I put together a short ten minute presentation about some of the A/B experiments we’d run to improve the guest booking details experience. I’d never presented this kind of material on my own before, so it was a little daunting. I was keen to make sure I had the details right, especially in case I was hit with any tricky questions. Presenting can be unpredictable. Sometimes my energy doesn’t quite match the mood of the room, even after I’ve got them all to grin and wave for a pho...

AI: Assisted Ignorance with Dom Davis

There’s something about Dom . It’s not only his depth of knowledge of the topics he speaks about. It’s his charisma and his delivery too. This is why people flock to see him. It also helps that Dom has been obsessed (in a good way) with AI for as long as I can remember. He always feels ahead of the game and I frequently learn a lot. Tonight, giving his “AI: Assisted Ignorance” talk, he started in the obvious place by reframing the Terminator story into a Software Engineering context. He then went on to show us how flawed it is and demonstrated how we shouldn’t be worried about it taking our jobs - at least not yet. There is of course the current junior developer crises, but that will soon come good when companies realise they’ll have no one to replace the senior devs who are retiring or going off to earn millions fixing other companies' AI disasters. Millenium bug anyone? The really important message was that AI doesn’t reason. It doesn’t think. It’s autocorrect on steroids, a prob...

My nor(DEV):con 2026

I’ve been to nor(DEV):con , East Anglia’s Largest Developer Conference , most years since its inception as syncConf in 2013. 2026 has been by far my favorite year, and not just because I had the opportunity to speak to a packed conference room with standing room only! Learning Go by becoming a drone pilot - Andrew Haine When Andrew first posted about his keynote at nor(DEV):con, it was just too easy to tease him he’d be droning on about Go ! Fortunately for me, he saw the funny side! In reality the talk was interesting, and expertly and charismatically delivered. Especially considering that there’d been a fairly major technology failure just before Andrew started. So he couldn’t share his laptop on the main screen. However, we did see him control a small drone hovering just above the stage and even saw it take a picture, all through code. Learning Python to buy shoes: A tale of studying, selectors and sneakers - Isaac Oldwood Isaac is one of the up and coming stars of the Eastang...