
River Thames in London on a foggy day
The clocks have gone back, the temperature has dropped and it feels like winter is around the corner. With half-term in the UK coming to and end I find myself flitting between thoughts of cozy winters by the fire and an unusual enthusiasm for being creative.
It has been a while since I stopped to look back at things that have been going on in life. I put the virtual pen down in May and here we are at the end of October. Events in the family prompted me to take a health more seriously but I’ve been finding that changing the habits of has been hard. It’s not that I don’t know that sleep, diet and exercise are fundamental to a healthy lifestyle. I find it’s the balance that is hard to get right. Throw in creative or curiosity led activities and something always gives.
Work
Those of you have worked with me building application platforms may have heard me say that we never remove complexity, we move it around. With each new tool or technology that we introduce, we kid ourselves into believing that we are simplifying when we are instead masking or moving complexity somewhere else. Take a look at the ‘essential’ tools installed on any developer machine. Unpick the web of products that make up your typical software delivery pipeline and you’ll find a number of tools who claim to make part of the job easier. When reviewing aviation safety back in 1980, Earl Wiener arrived at Law 29.
“Whenever you solve a problem you usually create one. You can only hope that the one you created is less critical than the one you eliminated.”
It isn’t that these tools don’t solve a problem, or that they don’t improve the experience of performing essential tasks. It’s that with each tool we add to our workflow, we add to the challenge of coordinating or choreographing all these tools.
Keeping track of this buried complexity is hard and it’s this that has taken much of my focus at work. Abstraction is a wonderful tool but the abstractions we build introduce unintended consequences. Sometimes these are deliberate choices with well understood trade-offs. Other times they are unintentional or based on an incomplete understanding of the surrounding context. Over time, these choices work their way into the foundations of the systems we build. Unpicking them can be painful.
There are two specific examples I’ve been working on; abstractions built to handle the common concerns in a micro services architecture. Lots of supposedly independent services sounds like a great idea but the complexity of plumbing them all together has to go somewhere. In this case, it’s an SDK that developers build on. That SDK has now become a maintenance burden.
The second interesting challenge has been the buried complexity in an in-memory distributed data store, running on a container platform, itself atop virtualised infrastructure. Our challenge is that we sometimes lose a healthy node from the cluster and this triggers a cascading failure of the system.
Work has been busy but I’ve been enjoying it.
Life

by Bill for Weird Web October
I took part in Weird Web October for the first time this year. It has been a long time since I sat down and tried to build anything involving HTML, CSS, or JavaScript from scratch. All three have moved on and I was impressed that working with all three was not nearly as painful as I remember it. I’m someone who likes a strict development environment. Tell me something is broken (or ambiguous) at the earliest opportunity and I feel a lot more confident in the code I’m writing. HTML remains as forgiving as ever but browser feedback on both CSS and JavaScript has come a long way.
“Weird Web October is a challenge to try and make a website every day of October, based on the theme for each day”
There were a few days when I was uninspired. There were many days when my creative ambition far outpaced both my technical ability or the time I was willing to allocate. But the entire experience was delightful and reminded me just how much I miss the early days of building things for the internet. I built them not for views or for likes, I built them because they were fun to build. I want to do more of that again.

Looking out over the bay at 洋口 (yáng kǒu)

Ethan leaving a local food market
The middle half of the year flew by. We were in China over the summer and managed to escape Beijing for a week in Qingdao (青岛, qīng dǎo). Oscar started at a new school in September and appears to be genuinely happy. Getting back to school has given me the chance to get back into regular exercise again. The school run netting me 15km on the bike each day.

The boys are growing up
On one of these rides, Oscar asked how a bike computer worked. How does it know how far I’ve gone? Or how fast? I love this question. We sat and looked at the bike for a while. How would you measure how far the bike has moved? Before the end of the trip, Oscar was describing an elaborate mechanism whereby a bump on the wheel could press a switch and you could count how many times the switch has been pressed. On the return ride, he stopped suddenly. “If there was a bump on the wheel… it would be really bumpy to ride my bike.”

Our second iteration bike computer
Over the course of the next few days, we built a switch out of kitchen foil and Lego. We connected it to the largest wheel he had and a buzzer that would beep each time the switch was closed. It worked but it was flimsy. A few upgrades later and a reed switch was reliably counting rotations on a BBC micro:bit. And then it was time to introduce maths. No need for π at this point. We measured how far the bike moves in one rotation of the wheel, rounded to the nearest ¼ and tested our multiplication. Who needs accuracy when you can approximate things and have just as much fun. Now if only we’d been able to 3D print a case and mount the computer on his bike. Something for the Christmas break.
I love when opportunities like this present themselves. An innocent question can spark endless curiosity. Multiple interests come together and suddenly things you’ve been learning in isolation start to fit together; maths, sport, levers, materials and conductivity, toys, coding… These aren’t isolated disciplines, they fit together.
I’ll leave you with a selection of books, music and interesting links that I’ve stumbled on in recent weeks.
📚 Books
Currently Reading: The Alignment Problem by Brian Christian
- The Art of Logic: How to Make Sense in a World that Doesn’t - Eugenia Cheng
- Is This Working?: The Jobs We Do, Told by the People Who Do Them – Charlie Colenutt
- Code Dependent: Living in the Shadow of AI – Madhumita Murgia
🎧 Music
- Time of the Last Persecution - Bill Fay
- Sea Change - Beck
- Oh! The Ocean - The Wombats
💖 Interesting
- Why would anybody start a website - it’s not all about money.
- The Internet Phone Book - an annual publication for exploring the vast poetic web.
- Do Androids Dream of Original Ideas - beautiful essay on AI and creativity.