Welcome to our latest attempt to not-so-gently nudge you to write more! Following up on writethat.blog and the Writing for Developers: Blogs That Get Read book, we’re sharing the perspectives of expert tech bloggers: why they write, how they tackle writing challenges, and their lessons learned.
This time, let’s hear from Sam Rose. Sam’s blog posts are truly distinctive – irresistible even. He takes complex concepts (memory allocation, Bloom filters, load balancing, hashing…) and masterfully explains them through interactive visualizations. You don’t just read his posts; you experience them.
Curious about all the creativity and craft behind these posts, we reached out to Sam with our standard list of questions. Here’s what he shared…
1. Why did you start blogging – and why do you continue?
I started blogging about tech in my final year of university. The earliest posts on http://samwho.dev, the ones from 2011, were written at this time. I’d heard that having an online presence would help me get a job, so I started writing about the things I was learning.
I wrote sporadically for years, most of my posts only getting a trickle of traffic, but I did have a few modestly successful ones. https://samwho.dev/blog/the-birth-and-death-of-a-running-program/ did well and even ended up as part of the Georgia Tech CS2110 resources list. One of the lecturers, who has since retired, emailed me in 2013 asking if he could use it. I was concerned because the post had swearing in it, but he said “swearing is attention getting and helps the reader stay alert.”
The blog posts I’ve become known for, the ones with lots of visual and interactive bits, started in the first half of 2023. I’d long admired the work of https://ciechanow.ski/ and wanted to see if I could apply his style to programming. It’s working well so far!
As for why I continue, I’ve been gainfully employed for a long time now, so my initial motivations for writing are long gone. I think my blog does help when I have conversations with employers, but that’s not the goal anymore.
I have this dream of being a teacher. I’ve dabbled in many forms of teaching: teaching assistant in university for some of my lecturers, mentoring in commercial and personal capacities, moderating learning communities, volunteering at bootcamps and kids’ groups. What if I could just… teach for a living?
I’m trying to make use of the attention these blog posts are getting to see if I can make steps towards doing just that.
2. What has been the most surprising impact of blogging for you?
The first big “wow, this works” moment was getting approached by Google. It was 2013 and I was barely 2 years out of university when I got an email from a Google recruiter inviting me to interview. I ended up working there for 4 years and it was a formative experience, one that had a huge impact on my career trajectory, my understanding of myself, and my worldview.
These days, what surprises me is just how many people I’ve been able to make connections with online through this shared love of creation. People will DM me saying things like “I really love your load balancing post!” and I’ll reply “Thanks! Hey, do you wanna do a video call sometime?” and they almost always say yes.
Alternately, I’ll reach out to people I admire and say “I really loved your post on XYZ, would you be open to a video call about it?” and I think because I have an appreciable following and a body of my own work on show, people are more willing to say yes.
3. What blog post are you most proud of and why?
My favourite of my own posts is one that I wrote for the folks at Encore: https://encore.dev/blog/queueing. The interactions feel really good, I love the “goals” system (credit to Julian Harris for the idea), I love how much the reader’s actions affect the post. The cherry on top is the space at the bottom of the page where all of your dropped requests end up (credit to Colin Howe for the idea).
I think there are ideas in the queueing post I’m going to expand on and refine. The goals system in particular will almost certainly be used in future writing.
It’s also the first post where I used little SVG symbols next to the words that are highlighted with colours that match up with the visuals. I’d bought and consumed most of the brilliant Nanda Syahrasyad’s https://svg-animations.how/ course while writing the post, and thought it’d be a nice bit of flair. I really like it, and am using it again in my next post.
The post I hear the most about is Load Balancing. It’s the one that has resulted in the most lovely emails from readers, and the one people tend to recognise me for. I have to admit that its popularity is a bit of a mystery to me. There are several glaring things I dislike about it, and have considered going back and changing. It was also my first post of this kind, when I knew little about what I was doing. I’m certainly not complaining, I just wish I understood!
4. What post was the most difficult to write and how did you tackle it?
Of the technical posts, I think Memory Allocation was the hardest. It’s arguably the most intimidating topic I’ve covered. There was no way to cover it how I wanted to without including C code, and I knew that would be off-putting to a lot of readers. It’s one of the reasons I introduced the dogs, to “soften” the topic and make it feel more approachable.
I came up with the smallest C example I could that demonstrated how malloc
and free
work, and I used a cute dog as a proxy for the reader. The dog was confused, hopefully showing the reader that it was okay for them to be confused, and I reassured the dog that it was okay. I hope that helped at least some folks stick with the post longer than they would have otherwise.
The dogs are something I wasn’t certain about. My philosophy in creative endeavours is to create what I would want to consume, without worrying too much about the audience. The audience is created by the content, not the other way around. Create what you like and you’ll find your people.
But with the dogs I knew there was some risk. I’d gotten some early feedback that they were infantilising and felt out of place in a deep technical post. I stuck to my principles, though, and most of the feedback I’ve had on them since has been positive.
Getting the visuals in Memory Allocation working just how I wanted them was also a nightmare. It was my first time using https://gsap.com/, which is a wonderful library, but I was new to it and learning as I went. What I ended up with was a tangled mess, and I’m quite sure now that I wasn’t using the library in the best way I could have been.
As for non-technical posts, the hardest to write by a wide margin was Having a Baby. It helped a lot that I’d kept a detailed journal throughout, but having to relive some of those moments was difficult.
5. Any lessons learned that you want to share with the community?
Yeah, a few things.
I wish I’d found my “thing” earlier. Making use of visuals, interactivity, and vibrant colours to explain boring or scary topics is something I could have been doing years before I started. Take time to think about your own experiences and ambitions. How could you combine 2-3 things you know well, or would happily spend time getting better at, to create something novel and valuable?
Listen to all feedback, but be picky about what you act upon. Every one of my post-2023 blog posts has received contradictory feedback. You aren’t going to please everyone, and you shouldn’t try. Work on knowing what’s important to you, and what you want from your work. How do you want people to view you? What do you want people to take from your work?
Don’t let the numbers suck the joy out of it. Don’t let the tail wag the dog. Don’t write something just because you want to ride the current hype wave, or because you want to hit the best SEO phrases. Do it because you want to.
To elaborate on the 2nd point, I’ll give you some examples of what’s important to me.
I want my work to be visually beautiful. I want people to say “oh, wow” when they open it. This is why I use vibrant colours and have developed my own visual style.
I want my work to be accessible. I put effort into getting better at accessibility with every post. I know I’m not where I want to be with this yet, but it is important to me to keep improving.
I want my work to help people understand things they didn’t think they could. This is why my work tends to be introductions to topics.
6. Your advice for people just getting started with blogging?
In the beginning, don’t think about it too hard. Get something written, on a regular basis, to start developing those muscles. There is a very good chance nobody will read it to begin with, but that’s fine. Write for yourself.
When you’re feeling more confident in your writing, start asking for feedback. Friends are a good start but they can be a double-edged sword. They love you, they want to encourage you, they are less likely to say you’ve made something that sucks. Reach out to writers more established than yourself, writing about similar things, and ask nicely if they’d give you feedback. You’d be surprised how many are happy to do this.
After a few pieces with feedback from other writers, you might start to notice you have your own style of writing. If you can’t see it, dedicate some time to reading other tech writers. Study every word. How do they make use of punctuation, sentences, paragraphs? Is their tone formal or casual? Do they have any favourite words or phrases? Do they write as themselves or have they created a character? Your own style will become more clear as you start to pay attention to the styles of others.
You’ll then have a decision to make: lean into your style, or change it. If you read my older posts (e.g. anything pre-2013) and my newer ones (2018 onwards) you will notice the style has changed a lot. I did this because sprinkling smileys and pop culture references into my posts wasn’t helping the reader learn, and was quite frankly a bit cringe.
My writing today is more… clinical. I remove all words not pulling their weight, I avoid all jargon, and I try to stick to short sentence lengths. It can be constricting, and a bit less fun, but I think it makes for a better end result.
7. A few blogs that you particularly enjoy?
In no particular order:
8. Anything else you want to add?
If you’re writing something with interactivity or visuals, you’re always welcome to reach out to me (hello@samwho.dev) for feedback!
***
Stay tuned for more tech blogger spotlights. Coming up: Jeff Atwood, Phil Eaton, Scott Hanselman, Matt Butcher, Glauber Costa, Amos Wenger, Charity Majors, Gunnar Morling, Dan Luu… These will be mixed in with the monthly writethat.blog updates.