https://samnot.es/problems/

My sparse thoughts on problem solving. Safe to Fail Solving a problem with a high risk & high cost of failure is not advisable. The solution needs to be right first time, with no way of being sure. Needing to be right in one go is much slower than rapid, low-cost iteration. Finding ways to reduce or remove that risk creates a feedback loop, and an appetite to try. [Example] Making failure safe: Upgrading a database client library What is a database client library? For the purposes of this example, a piece of software critical to the application’s function.

Sam

# Problems & [Meta] Problem Solving

My sparse thoughts on problem solving.

Safe to Fail

Solving a problem with a high risk & high cost of failure is not advisable. The solution needs to be right first time, with no way of being sure.

Needing to be right in one go is much slower than rapid, low-cost iteration.

Finding ways to reduce or remove that risk creates a feedback loop, and an appetite to try.

[Example] Making failure safe: Upgrading a database client library

What is a database client library? For the purposes of this example, a piece of software critical to the application’s function.

For a long time a team I worked with had not been able to upgrade their databse client library, leaving them several versions behind with known vulnerabilities and reliability concerns.

It was critical for them to upgrade. But every time they tried, it went badly, memory shot through the roof, and the application crashed.

Here’s the approach they were taking:

  • Raise a PR with hundreds of files changed, switching to the new library
  • Roll it out
  • It failed and caused crashes, leaving the application unavailable to customers
  • Revert all the code
  • Then if they wanted to try again, well, they started from scratch.

There are a few evident issues here:

  • Wasted work & rework
  • The issue couldn’t be replicated in other environments
  • A big-bang all-or-nothing change with significant risk

The wasted work comes from having just one version or another, and is therefore linked to the big-bang approach. Big bang approaches are always risky.

I’m not an expert on database client libraries. I knew less about them, and less about the specifics of this problem, than anyone else in the team. But what I did know is how to break this problem into something safer and more manageable.

I refactored the way the current library was used, to encapsulate it into a single place. This abstracted which library was being used from the rest of the application. (This is, besides all else, good design practice.)

Next I added a “client manager” which could, query by query, container by container, user by user, decide which library to use. This could be controlled by a feature flag and updated instantly.

I pushed this change, which had no impact whatsoever to the customer or application. I had not solved the problem of upgrading the library. I hadn’t done any investigation into the upgrade at all.

I showed the most junior engineer on the team the feature flag, the client manager, and how to use a memory profiler. Then I left them to it.

Within a week the engineer had plugged in the new library alongside the old, rolled it out for his user one query at a time, and used the profiler to identify the memory leak.

They shipped the new client library within another 2 days to all customers, rolling out gradually, with no further incidents. The reliability issues they had been battling for more than 2 years were gone.

Tight Feedback Loops

Tight feedback loops are more effective than knowing theory, for learning.

Neural networks today are proving this. AI with no knowledge of the rules of a game, that get reward/cost feedback quickly, are able to excel at the game.

Build feedback loops half as tight and you’ll progress rapidly.

[Example] Running things locally

As a software engineer, being able to run your program immediately on your machine means you can get feedback rapidly.

Reading a doc on how the system works or thinking for a long time about whether your change will work is hundreds or thousands of times slower than this feedback loop for developing understanding.

If this feedback loop slows down, that soon becomes untrue. If you have to push your changes to a shared server, with slow CI checks and a deploy queue, the price of each change goes up and suddenly it makes sense to be more methodical with each change.

[Example] Playing tennis

A tennis coach that helps you to understand your mistakes as you’re playing is many times more useful than a coach that takes to share at the end.

Every adjustment you can make in the game is a new experiment in getting better.

[Takeaway] Invest in feedback speed

With a good feedback loop things become self-documenting. You don’t need to share knowledge. The system itself is the teacher.

You don’t need to invest as much time in making this shot, or this code change, perfect. Adapt based on what you observed and go again.

High Fidelity Feedback

High fidelity feedback contains all the information you need to correct yourself.

Low fidelity feedback contains only a vague idea of the direction to travel.

[Example] Running form correction

Low fidelity feedback would be someone telling you your form is off.

Decent fidelity would be an in-depth description of what to change.

High fidelity feedback would be a resistance band around your thighs as your run so that you can feel your knees folding inward.

[Example] Debugging a program

If your program doesn’t do what you want, that’s low fidelity.

A log of the error is better.

A breakpoint with full context to inspect is high fidelity.

[Takeaway] A better compass

Feedback is to correct your course. The more information you have, the more precise that correction.

Principles

Principles are useful for encoding wisdom, solving future problems by abstracting lessons from previous problems.

Principles offer consistency & predictability, which are ever more useful in large organisations, where people impacted by your future decisions want to subscribe to some sense of what you will do.

Principles are also a strategic tool: This is who we are, what we do, and what we don’t.

They are personal & contextual. Here are mine.

ARCHIVE

15 Apr 2026 A Little Humanity 13 Apr 2026 Hamlet - William Shakespeare 13 Apr 2026 The Rise and Fall of the Third Reich - William L. Shirer 13 Apr 2026 The Secret History - Donna Tartt 11 Apr 2026 A Year of Living Simply - Kate Humble 08 Apr 2026 40 Before 40 08 Apr 2026 Montaigne - Stefan Zweig 04 Apr 2026 William Shakespeare: A Very Short Introduction - Stanley Wells 19 Mar 2026 Unreasonable Hospitality - Will Guidara 15 Mar 2026 Hitler's Secret - Rory Clements 15 Mar 2026 Nemesis - Rory Clements 08 Mar 2026 HRV & Me: Taming a messy stressy mind 02 Mar 2026 Nucleus - Rory Clements 19 Feb 2026 Corpus - Rory Clements 08 Feb 2026 Resonance 16 Jan 2026 A Night to Remember: Sinking of the Titanic - Walter Lord 01 Jan 2026 Everything I've read in 2026 (so far) 15 Dec 2025 Someone from the Past (British Library Crime Classics) - Margot Bennett 01 Dec 2025 Death in Ambush (British Library Crime Classics) - Susan Gilruth 23 Nov 2025 A Cold Wind From Moscow - Rory Clements 10 Nov 2025 The Boleyn Traitor - Philippa Gregory 24 Oct 2025 Death Makes a Prophet (British Library Crime Classics) - John Bude 13 Oct 2025 The Cheltenham Square Murder (British Library Crime Classics) - John Bude 04 Oct 2025 Sussex Downs Murders (British Library Crime Classics) - John Bude 22 Sep 2025 The Lake District Murder (British Library Crime Classics) - John Bude 15 Sep 2025 The Mayor of Casterbridge - Thomas Hardy 10 Sep 2025 The Murder of Roger Ackroyd - Agatha Christie 30 Aug 2025 Marble Hall Murders - Anthony Horowitz 25 Jul 2025 Where Angels Fear to Tread -- EM Forster 10 Jul 2025 Steve Jobs -- Walter Isaacson 10 Jul 2025 The Fifth Risk -- Michael Lewis 10 Jul 2025 The Ride of a Lifetime -- Bob Iger 03 Jul 2025 James -- Percival Everett 01 Jul 2025 Great Expectations -- Charles Dickens 23 Jun 2025 Hillbilly Elegy -- JD Vance 10 Jun 2025 Principles 09 Jun 2025 Revenge of the Tipping Point -- Malcolm Gladwell 06 Jun 2025 The Grand Babylon Hotel -- Arnold Bennett 04 Jun 2025 The Seven Husbands of Evelyn Hugo -- Taylor Jenkins Reid 03 Jun 2025 Rebecca -- Daphne du Maurier 29 May 2025 A Promised Land - Barack Obama 29 May 2025 Less - Andrew Sean Greer 13 May 2025 Careless People - Sarah Wynn-Williams 07 May 2025 Looking Glass War - John Le Carre 04 May 2025 A Murder of Quality - John Le Carre 01 May 2025 London Marathon 2025: Training Retrospective 29 Apr 2025 The Human Factor - Graham Greene 28 Apr 2025 London Marathon 2025: Race Review 27 Apr 2025 Photos: London Marathon 2025 27 Apr 2025 Spectating the London Marathon 2025 [Sunday 27th April] 26 Apr 2025 London Marathon 2025: Week 16 23 Apr 2025 Call for the Dead - John Le Carre 21 Apr 2025 London Marathon 2025: Week 15 16 Apr 2025 The Manchurian Candidate - Richard Condon 13 Apr 2025 London Marathon 2025: Week 14 05 Apr 2025 London Marathon 2025: Week 13 30 Mar 2025 London Marathon 2025: Week 12 26 Mar 2025 Effortless - Greg Mckeown 23 Mar 2025 London Marathon 2025: Week 11 16 Mar 2025 London Marathon 2025: Week 10 09 Mar 2025 London Marathon 2025: Week 9 02 Mar 2025 London Marathon 2025: Week 8 22 Feb 2025 London Marathon 2025: Week 7 16 Feb 2025 London Marathon 2025: Week 6 16 Feb 2025 Problems & [Meta] Problem Solving 14 Feb 2025 Little Dribbling - Bill Bryson 10 Feb 2025 Bring Up the Bodies - Hilary Mantel 09 Feb 2025 London Marathon 2025: Week 5 09 Feb 2025 Three Zero 03 Feb 2025 The iPad mini has genuinely changed my life [no hyperbole] 02 Feb 2025 London Marathon 2025: Week 4 28 Jan 2025 Coming AI: Valuing Humans in a world where they have no economic value 28 Jan 2025 Value & Price 27 Jan 2025 The Vegetarian - Han Kang 27 Jan 2025 Wolf Hall - Hilary Mantel 26 Jan 2025 London Marathon 2025: Week 3 19 Jan 2025 Deriving my own proof for Unitary matrices 19 Jan 2025 London Marathon 2025: Week 2 17 Jan 2025 David Copperfield - Charles Dickens 12 Jan 2025 London Marathon 2025: Week 1 09 Jan 2025 NYC & DC '24 08 Jan 2025 Linear Algebra Playground 07 Jan 2025 Configuring an IKEA wireless light switch: Saving you the pain 07 Jan 2025 Goals & Goal-setting 06 Jan 2025 Digital Feeds 05 Jan 2025 London Marathon 2025: Training Begins 01 Jan 2025 Everything I've read in 2025