Warning – geek zone alert. Put on your strongest jargon pant.
I’m a coder – aka techie, geek. At one time I might even have used the term hacker, but common usage and the dictonary have pigeon holed that definition to a narrow and more malicious subset of it’s original meaning. On my resume though it’s just “Software Developer“, since corporate types don’t like any of those other terms. OK, but what does that have to do with cycling you might rightly ask. Bear with me, we’ll get there.
For the next couple of weeks my wife, Yoli, is away running a spiritual retreat (which by all accounts is going pretty well). That leaves me and Ben at home – a sure fire recipe for junk food, video games, too much TV, and me sitting longer at my PC than I would normally (or is healthy). Last weekend is a prime example. Once the essentials were done (laundry, fed the kid etc) I sat around wondering which of my many optional TODO items I might do. The rear tyre on my gravel bike needs to be replaced with one of the new Spesh Roubaix Pro 2Bliss which just arrived. I don’t often buy into Spesh as brand, but tyres have got stupidly expensive and these by comparison are both great and way better priced than the newer crop. And of course, there’s also the endless fettling of the NC4K rig – I still need to load up the fork bags according to the plan, and then whittle down the inevitable over packing. Plus, putting bike stuff aside, there’s an equally long list of other hobby and house things I’ve been “meaning to get too”. Except on this particular weekend, I couldn’t shake the idea of doing some work hacking at my PC. Which, before you call me a saddo, I should put into context.
Working on a weekend WTF? To be fair, my work schedules are highly flexible. I know we are supposed to have rigid boundaries – but I don’t. I will cycle midweek because I feel like it, work early mornings, late evenings or weekends. I go with the flow of inspiration and I reckon it all balances out. Pretty much. Also, I love coding, so if an idea inspires me it’s almost equally appealing to the myriad other things I could be doing. So what was so important on this particular weekend?
The latest Java release has a new feature (virtual threads for any fellow geeks reading), and I’ve been curious to see how it works inside our products for a while. It’s not essential in any way, but I had a hunch it may help give us a bit of a performance boost. What actually happened and how this relates to NC4K is really the point of this story.
I prodded at the idea a bit on the Saturday – alternating between hacking test code at my IDE of choice (NetBeans), skimming hundreds of pages of tech journals and spec, all the while with half an eye and ear to the Giro stage streaming on my other monitor. By the end of the day I’d come to the conclusion that the caveats I’d found in those many journals probably meant we wouldn’t really see much actual performance benefit. So I updated our PR (a sort of internal job ticket), wrote a summary email to the guys. Scheduled it to go out at 7am Monday because I try not to interrupt them with work emails on a weekend. And left the PC to go do some fun shit with Ben.
Usually that would have been it. But the idea would not go away. And Sunday ended up following a similar pattern. By the time I got to my desk for “real” work on Monday morning, I had the new approach figured out and 90% of the mods done, And there was still time to intercept the 7am email and reword it to sound more upbeat. Over the next 2 days I was running tests and tweaking the code. And here’s where it got interesting. Sure enough, the caveats were right – no massive benefit. Maybe a slight uplift in throughput (5 or 10%). But that was not the story. Something else, completely unexpected happened. Our product started behaving better when overloaded. Our users push things to the limit – because it’s a part of what we offer. And when you push over that limit, shit breaks. That’s fine, it’s a test rig, that’s meant to happen – sometimes. But this new model was much better behaved. When it was pushed beyond its limit it kept going, as best it could. Throughputs got wobbly, and dropped, but the rig did not die. At all. In fact it kept going long enough that it was possible to step in and calm it down to bring conditions back to normal. Without getting deeper into the tech rabbit hole – let’s just say that is alchemy for us. Better than gold.
It was only later that evening when I realised the lesson here for NC4K. My training (and body) have been struggling really badly the last couple of weeks. So much so, it’s crossed my mind to pull out. But I’m not at that point yet – and I have some big test rides to come still which may go better. And I (re)realised that the whole point of this journey is that it is not predictable. There may be a fixed route, and in theory that suggests we are riding from Italy to the top of Europe. But that is not what is really happening here. The underlying journey is likely to be just as unexpected and surprising as those coding results. The point is not to know the outcome. It’s to keep going (whilst mind and body are still in the game) and see where that takes you. Both physically on the road, and just as importantly within ourselves. We don’t throw in the towel too soon, or when some negative indicators match up to some journal or paper. You follow the path because you must, not because you know where it leads. We’re meant to discover that for ourselves. It’s an adventure. Or nothing.
It’s certainly going to be one massive adventure. We’ll be following 🙂
Cheers bud. Likewise – since you and Chris will be on the road at the same time as me but heading SE rather than N.
the geek stuff was all gobbledeeguk to me but envious of this cycling trip for sure.
yeah – it is a jargon heavy industry. Beginning to get excited now – tempered a shade by the body really not handling the hours on the bike as well as I’m used too. But it’s a different kind of ride, which does shift the emphasis away from cranking out massive distances every day towards savouring the journey.