I came across Sam's lovely blog at the same time thousands of others did: when he published Load Balancing, a terrific visual essay on various load balancing approaches. Getting to serve him as a user of Buttondown is a delight, and I was thrilled to have the opportunity to chat with him about his writing, his inspirations, and his journey as a programmer and writer.
I like to choose topics that meet the following criteria:
So things like load balancing, memory allocation, hashing, retries, they all fit this bill. Topics like this often start out very simple, and relentless optimisation over decades has made them unapproachable. If you go back to the beginning, there's a simple implementation that most people can understand. Once you explain that, you can build on it bit by bit until you get closer to the state-of-the-art.
I aim to help people get their footing, then give them enough of a taste to want to explore on their own. I like to think of my posts as "on-ramps," and my dream is to one day be credited as the writer who got a topic to "click" for someone who goes on to push the boundary in that area.
The visual and interactive nature of the posts is my differentiator. It's not unique, but few enough people are doing it that the posts stand out. The things I pick usually have a lot written about them already, but the material is too advanced, too dry, or both.
I've had people mistake me for a veteran front-end developer or designer, but not much could be further from the truth. I'm a backend developer who has spent his career avoiding web UI and visual design. I pick simple 2D graphics because it's less scary for me, and I'm learning as I go. Load Balancing was my first attempt at any sort of animated visualisation work.
I won't understate it, I was angry about this. I had a lot of pent up creative energy and wanted to channel it somewhere.
My writing can be split into two eras: pre- and post-April 2023. April 2023 was when I released Load Balancing, and everything since has followed the same style. Before this, I'd been writing for a long time but it was much more traditional tech/personal blogging.
What inspired me in the beginning, back in 2011, was getting a job. I was in my final year of university and the job market loomed ahead of me. The advice around this hasn't changed much in 13 years: blogging makes you more employable. It's not just that companies might read your blog and want to hire you, but the process of writing helps you learn a valuable skills. Communicating complex ideas, organising your thoughts, intellectual rigour, plucking up the courage to put your ideas out there, and acting on the positive/negative feedback that might follow.
It wasn't a wasted endeavour, either. Several jobs throughout my career were helped by having a blog. Most notably, Google reached out to me in 2014 and cited having read my blog, which led them to think I might be a suitable Site Reliability Engineering candidate. I'm not sure I'd have had the self-confidence to apply without this nudge, and working there was a formative part of my career.
Post-April 2023 has been different. In the years leading up to this I had been pushing myself hard in my career, and I found myself leading a team of excellent developers. Some of the work we were doing was worth sharing with the world, and so I was campaigning internally for us to publish technical posts on the company blog.
It was difficult to get buy-in, but dogged persistence saw it happen and the reception was good. So good that there was suddenly more interest from the rest of the business. The result was a new and suffocating process around technical blog posts that made it exhausting to publish anything, and so we never did again.
I won't understate it, I was angry about this. I had a lot of pent up creative energy and wanted to channel it somewhere.
I had admired the work of Bartosz Ciechanowski for many years, and on a whim decided to try my hand at writing in his style. I chose Load Balancing because it was something I knew quite well, and it seemed straightforward to visualise.
The response was overwhelming. I had poured a lot of time into it and thought it was good, but nothing could have prepared me for what happened on April 18th 2023.
Thousands of upvotes, hundreds of comments, and dozens of emails and DMs. My phone vibrated non-stop all day. Friends were sending me screenshots of the post finding its way into their company Slack, people were sending me emails thanking me or asking how I made it, and a well-known big tech CEO slid into my DMs to tell me how much he enjoyed the post.
The validation felt incredible, it's a high I've had to be very careful not to chase. I don't want to feel the need for all of my posts to get the same response. Sometimes topics I cover will be niche, and not do as well, and that's fine. I don't want engagement to be the driver of what I make.
That said, I do hope my posts do well and one of the things that encourages me to make more is the people that reach out to me to tell me a post resonated with them. I love receiving email from people, so if you read this and have thoughts on my writing please do reach out! To date, I have responded to 100% of these emails.
It's liberating to have a platform-independent way to do that, though. Like a lot of people, I have my concerns about the future of Twitter/X. I've been on there since 2009(!) and never before has it felt so broken. I wouldn't want the collapse of one social platform to mean I lose contact with the people who enjoy my writing, and indeed the people whose writing I myself enjoy.
The thing that surprises me is just how profoundly my online life has affected, and to a large extent become, my life. It isn't possible to separate the two. Since 2018 I have worked remotely, and there are people I've worked with that I consider good friends but we've never met in person. This idea of having online-only friends isn't new, but I think it's quite novel to have colleagues who are also friends but you've never met in person.
I was born in 1990, personal computers were entering the home and the Internet was becoming something non-academics made use of. My dad had an interest in computers, so we had one in the home a little earlier than most folks. We also had an internet connection fairly early, and both of these things had my attention from day one. If you went back and told 9-year-old me how central these devices would be to his life, I don't think he would have believed you.
As for what might surprise others, I'm going to go with the extent to which gaming has shaped who I am. From its launch in 2004, until 2007, I played World of Warcraft. And I mean played. If I wasn't sleeping or at school, I was playing World of Warcraft. It was an addiction. I pushed all other aspects of my life to the side for 3 years, and it wasn't until I started failing school and jeopardising my future that I stopped.
Those 3 years taught me a lot, and I don't regret them. I played at a high level, which required preparation, mechanical ability, and I had to get comfortable with failure. When the game released new challenges, we'd fail hundreds of times before succeeding. The feeling when you did succeed, though, made everything worth it.
Before the WoW years I'd been playing all sorts of other online games. From RuneScape to obscure text-based role-playing games. I interacted with people twice my age, from all around the world. It exposed me to different cultures, personalities, beliefs, and interpersonal conflict. I got to be a part of, and help manage, online communities. I sharpened my text-based communication to come across older than I was.
It's a different landscape in 2024. It wasn't risk-free back then, but it wasn't as dangerous as it is today. I'm not a rose-tinted glasses kind of person, I believe the the present is an improvement on the past and the future will be an improvement on the present. Kids who are like I was in the early 2000s are finding new outlets, and I'm excited to see what shaped the teenagers of today a decade from now.
Find something that differentiates you from everybody else and get really good at it.
I try to occupy the low-frequency, high-quality quadrant of the content creator punnet square. As a result, I treat my newsletter less like an independent entity and more like a notification system.
It's liberating to have a platform-independent way to do that, though. Like a lot of people, I have my concerns about the future of Twitter/X. I've been on there since 2009(!) and never before has it felt so broken. I wouldn't want the collapse of one social platform to mean I lose contact with the people who enjoy my writing, and indeed the people whose writing I myself enjoy.
A guilty pleasure I get from Buttondown is that whenever someone subscribes to my emails, I see the URL they subscribed from. I purposefully do not have analytics on my site, so this is the only inclination I get about where people have found me. Often the URL will have query params that suggest it came from another site or newsletter, so I get to find where my stuff is being shared.
Also in Bloom Filters I experimented with offering an alternate colour scheme. It works by putting a query param into the URL. I've seen a number of people subscribe to my emails using the alternate colour scheme, which was a nice confirmation that people got value from it.
Yes, absolutely.
Before April 2023 my blog was a typical personal tech blog that approximately nobody read. Since then, I've had a string of successful posts and started to gain momentum. I'd go back and start doing visual posts way earlier if I were given the option to. I'm not relying on any whizzbang new browser technology to do it, my animations don't even use WebGL. HTML <canvas>
elements have been widely supported since the mid-2000s.
The more general piece of advice I'd give to people is to narrow your focus. Find something that differentiates you from everybody else and get really good at it. I wasn't doing this until recently, and I should have been. It can be hard to find, but you can make it easier by being willing to try and fail. As Aaron Francis wrote recently, try really hard.