Skill Issue logo

Skill Issue

Archives
Subscribe
June 26, 2026

Go Ride Bikes

Last week I was too busy with ✨work stuff✨ to get a Skill Issue out. My work week was a bit compressed because on Friday morning I loaded up my bike and left on my first bikepacking trip of my adult life. I’ve always enjoyed riding bikes, but up until late last year my only bike was a KHS single speed I used to bomb around town.

Last fall, I finally got my hands on a gravel bike (the new Surly Straggler) and have been slowly accumulating all the necessary bags and gear to take it bikepacking. Last weekend, I finally put it to use, joining the VIBC’s annual Solstice trip. We rode from Victoria to Salt Spring Island (there’s a ferry involved), camped in Ruckle Park, and explored the island. It was just over 150km of riding and 2000m of elevation over the three days. It was also tons of fun.

Here’s a fraction of the army of bicycles that inundated the Saltspring ferry on the way back. Mine is the one immediately in front with the green towel on it.

When this Skill Issue gets sent out, I’ll be on my loaded bike, riding out for another trip with a group of friends. I’ve put some bigger tires (Continental Dubnital 29x2.0) on the Straggler and am looking forward to seeing how they handle. If you’re into bike adventure stuff, feel free to follow along over on Instagram.

I wrote in the last Skill Issue that I was exploring the world of event sourcing. I read through a couple of recommended books on the subject and started exploring what an event sourcing architecture might look like using my preferred tools, Ruby and Postgres.

I’m not going to dive into the details of the implementation yet, but I’m glad there were some good resources and examples out in the wild. Things like ensuring we handle concurrent transactions in a way that avoids the possibility of readers missing events are subtle problems that require a solid understanding of how your data store (in my case Postgres) works.

I’ve started using my favourite test project to try the architecture out: my social media cross-posting tool. Like I mentioned before, the data model for it is tricky. There’s a difference between the source data, what we tried to post to each network (in some cases multiple times), and what was actually posted.

The most rudimentary version of this tool doesn’t necessarily care about all of that, but I want to be able to look back at post metrics and do some analytics… which is difficult without a more robust data model. It’s appealing to have all of the data of every operation/interaction stored, allowing me to coalesce it into the appropriate forms for different contexts.

We’ll see how it goes. I’m sure this project will take some time before it’s in shape to switch over from my current implementation. It’s just my Tuesday evening project after all.


Khemmis plays doom metal. It’s a very specific brand that’s reminiscent of classic doom, but it feels modern. Their sound resonates with me. It hits different, so to speak.

Fourteen years into their career, they’ve decided to release a self-titled record. It’s fantastic. Hunted is still my favourite entry in their discography, but I’ve been through this new record a half dozen times now and am still finding more to love in it.

KhemmisKhemmis
Don't miss what's next. Subscribe to Skill Issue:
Share this email:
Share on LinkedIn Share on Mastodon Share on Bluesky
chat
globe
Bluesky
GitHub
Twitter
LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.