Hello there Skrifters! It's been a long while since I last wrote for the magazine, but recently while doing my first ever 100 mile run, I had a bit of an epiphany that my work life (web development) and one of my passions (ultrarunning) have an awful lot more in common than you might think. Now, it's entirely possible that it was just my exhausted brain making the connections at 3am as I was running through the night, BUT, in the time since, I've had a think about it, and I think it still mostly holds up. So here is a lighthearted explanation of why I thinks its true! I hope you enjoy my ramblings!
But first up what is ultrarunning? For those that aren't aware of it, its running any distance further than a marathon, but often refers to distances of 50 miles, 100 miles, or even further. In the case of the Backyard Ultra format, it's as long as at least two people can keep running for, every hour on the hour, for 4.167 miles every hour, and the current record is a min boggling 119 hours/496 miles. So, how did I, a slightly squishy middle aged web developer come to be doing such crazy things?
Back in 2006, I was diagnosed with Stage 4b Cancer, I even wrote about it on here some time back. Afterwards, I decided to get fitter, and started running, and started doing longer distances, until I ran my first marathon (albeit one dressed as a Viking, strapped to a Viking boat with 39 pother people and breaking a Guinness World Record) back in 2019. Eagle eyed readers may be able to spot me in the video over on YouTube.
As an asthmatic former Cancer patient, I wasn't sure I had a marathon in me to be honest, but I got through it and had a ton of fun in the process. Many of my fellow shipmates were VERY accomplished ultrarunners, and chatting to them, I mentioned my admiration for them, and that while I thought it might be fun to try one, I probably couldn't. They were all super supportive, and told me to try one anyway. So I decided to have a go. Obviously COVID happened which put a damper on my plans, but once that was out of the way, I ran my first ultramarathon (albeit somewhat slowly), which was fairly sensible 55KM up in Scotland in 2021.
I kept pushing the distance up, until I managed to hit 100KM in a Backyard Ultra back in 2023. I never in a million years thought that was possible, so I set myself the big target of trying to run 100 miles in one go before I hit 50 (I was 47 at the time).
Fast forward to summer 2024 and I attempted a 111 mile event that went round the Coventry canal ring. I managed a respectable 80 odd miles, before I timed out. I was disappointed that I hadn't finished, but I learned a lot, and vowed to try another similar event the following year. So it was that I lined up at 6am one late August morning this year, to try and run from Liverpool all the way back to Leeds along the canal.
This was a 128 mile event, and this time I had support crew and a buddy runner for the last 50 miles. Sadly, I timed out of the event at around 94 miles, but with the support of my crew, decided to push on and and try and reach the 100 mile mark anyway, as I was so close to my target, and I cared more about reaching the 100 miles than I did about finishing (good job too, as I was so broken I'd NEVER have made it much further). I made it to 100 miles, but it wasn't pretty, and I was utterly broken at the end of it.
This is all well and good you're thinking, but how does this tie into web development? While I was running, one of the ways I kept myself awake was thinking of random stuff, and my brain went off on quite a big tangent about how similar a lot of the running stuff is to web development. I was tired, sleep deprived and a bit incoherent at that point, but I think it still makes sense. So, without further ado, here are some similarities.
What works for one thing doesn't always scale
A common thing you see from newbie ultrarunners is thinking that their marathon time will scale to longer distances. For example, if you can run a three hour marathon, you can run 100 miles in 12 hours. It doesn't work like that, AT ALL. If I got some money every time I heard someone confidently predict a six hour 50 miler, only to crash and burn just over marathon distance because they've burned through all their energy, I'd be able to afford a very fancy new laptop!
The same holds true for web development. Solutions and setups that work fine for small/medium sites very often don't work so well once your site has many thousands of pages, or very high user traffic.
You sometimes have to debug thing on the fly
We've all had it when a third party service goes down on a site and you have to try and debug what the hell is going on. Often the documentation is useless, there's no test environment to play with, and you're left to put on your deerstalker and Sherlock Holmes the crap out of the issue, often through trial and error, until you realise that they've made a slight change to a method signature that they didn't document that causes your mission critical code to fail horribly.
Well, ultrarunning has a lot of that, but instead of a website, you're debugging you. It's 4am, you're exhausted and your foot hurts, is it a blister forming? Should you stop and perform some foot care? Or maybe its a small rock in there that you need to take out before it causes more serious issues? Is your stomach hurting because you're hungry? Or is it because you're just feeling sick? After 20+ hours of running, your body is refusing most foods, using trial and error, can you work out what you can still stomach without being violently sick?
It's all about the shiny gear
You know how us web developers love shiny new tech, whether that be the latest laptop, phone, or cool new technology/software to help us with our jobs? Well ultrarunners are exactly the same, but they buy fancy shoes, expensive headtorches, and little pouches of sugary goop that are meant to help us run for longer! And to be honest in both, cases, we don't REALLY need the shiny, but its cool though, right?
You do better with support
Something that I learned when I started pushing to longer distances in running, is that the people who have good support crews have a MUCH easier time of it. You're not having to do EVERYTHING yourself, which becomes trickier the longer you've been awake and the more tired you are. Its the same with web development. You CAN do it all yourself, but its a much more pleasant experience working in a good team.
You can always learn something when things go wrong
When things go wrong in a web project, I've always said it's never really a failure as long as you learn something. Perhaps you've learnt something about how code performs under heavy load, that you can apply to future projects, or maybe that some third party services have some gotchas that weren't obvious. I've always found the same with running/ I've seen people quit a race on the spot if they don't think they're going to finish, or get a PB or whatever.
To me that seems crazy, I'd rather keep pushing, even if I know I'll time out, just to see what I can learn that might be helpful for next time. I've timed out of a bunch of races over the years, and each time I've looked at it as a learning experience. What went wrong? What could I have done better? What changes can I make that will minimise the chance of this going wrong again?
Slow and steady wins the race
I am NOT a fast runner, it's probably why I like ultrarunning so much, as I don't have to be fast to do it, I can get away with being relentlessly mediocre for many, many hours instead. Longer distances are about managing your energy and fuel, and making sure you have enough in the tank to finish.
Web development is the same, in fast paced agency environments there's always the pressure to get everything done NOW, NOW, NOW and rushing too much can lead to mistakes and burnout. In both cases, taking the time and pacing yourselves means you'll do better AND not be completely burnt out at the end.
Snacks are important
When you're deep in a code problem, head down and in the zone, it's easy to forget to eat and stay hydrated! You're so focussed on the task, that before you know it, you're tired, thirsty and grumpy. Ultrarunning is very similar, if you don't stay on top of your nutrition and hydration, it can cost you the event, as by the time you realise you've run out of energy, it's VERY difficult to pull it back again. Also, ultrarunners tend to eat a lot of party snacks, which is similar to a lot of developers I know (myself included).
Awesome communities make a HUGE difference
As a long time member of the awesome Umbraco community, I know all to well that having a great, supportive community can make all the difference between using something once or twice, and spending 15 years specialising in that platform. I've found the ultrarunning community to be very similar. Lots of very supportive people, who just want to help and see you do well. I've had folks from the UK Backyard Ultra team help me out at events, even though I'm a complete nobody in comparison! Having people like that around you inspires you to do bigger and better things and be better at the thing you're doing (whether that's programming or running for a very, very long time).
So there we have it! I bet you didn't think running for a VERY long time and programming had much in common, did you? But now you know better. And if you're remotely curious about trying to run crazy distances, reach out, I'd be happy to help! Also, try a Backyard Ultra, they're popping up all over the place, and they're a fantastic was to try running long, without it feeling like you are (as you get breaks between each lap).