Phil Eaton on Technical Blogging
“The stakes are so low and the potential benefits to yourself and others are so great”
Following up on “Writing for Developers: Blogs That Get Read” and writethat.blog, 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 Phil Eaton.
Over the past decade(ish), Phil has “chased his way down the software stack.” Building upon humble beginnings with jQuery and PHP, he later co-founded TigerBeetle and is currently a staff engineer working on Postgres products at EnterpriseDB.
At every step along the way, he’s been fostering community: dedicating who-knows-how-many hours to spearheading book clubs, meetups, Discord groups, subreddits, and 1:1 chats that benefit education non-profits. He’s also exceedingly generous about sharing his thoughts and learnings with the global community of readers. Since 2018, he’s kept up an impressive cadence of two posts per month, tackling topics ranging from compilers, to community building, to Zig and C.
Over to Phil…
Why did you start blogging – and why do you continue?
My shameless goal when I started blogging in 2015 was to become a regular on the front of Hacker News (HN) because I got the sense that it would be good for my career. And I enjoyed the type of posts that made a great fit for HN; posts that were a little crazy yet taught you something useful.
After becoming a manager in 2017, I realized the importance and value of writing for the sake of communicating and my focus on writing shifted from "writing about zany explorations" to "writing as a means for teaching myself a topic, or solidifying my understanding of the topic."
I started to notice, observing both myself and coworkers, that we developers let so many educational opportunities pass without recording the results. What a waste!
Not only is writing about what you learn good for your own understanding and your team's understanding and for the internet's understanding, it's good marketing for you and the company you work for. Good marketing in the sense that when people see someone write a useful blog post, they think "that person is cool, and the company they work for must also be cool; I want to work with them or work for that company or buy from that company."
So there's this confluence of reasons that make blogging so obviously worth the time.
What has been the most surprising impact of blogging for you?
I was a bit shocked to see two of my posts cited in research papers. One post cited was my survey about parsing techniques in programming languages and the other post cited was a post I wrote about how databases build on top of key-value databases.
When you write about what's weird or interesting to you, you might end up being one of the few people who have ever written about the topic. Mostly, I think, because relatively few people write at all!
Getting featured in a book about writing for developers was also pretty surprising. :)
What post was the most difficult to write and how did you tackle it?
To give a little background, I have a personal goal to write one or two technical blog posts a month. And in order to accomplish this, I have to constantly consider what I'm working on or learning this month and imagining how I could fit it into a blog post. I have other things in life I want to do, so the blog post must not take more than 8-16 hours to write. So I'm always on the lookout for a way I can explain something I learned in <500 lines of code because it takes me roughly 8-16 hours to do a decent job explaining, in writing, 500 lines of code.
But not every problem fits into this amount of code. The second time I implemented Raft, and I thought I did a pretty good job and that it would be worth writing about, it ended up being around 3,000 lines of code. I do not personally have the patience or dedication at this time to write such a long blog post that would do a good job explaining a project of that size in depth.
So I ended up not writing about the code at all and instead just writing about intuitions for distributed consensus. But this was difficult in its own way because I was mostly pulling together intuitions I had learned second-hand while at TigerBeetle and things I found around the internet. It can be difficult to test out the intuitions except for in large-scale deployments. I ended up counting on a number of friend-experts like Jack Vanlightly, Alex Miller, Alex Petrov, Daniel Chia, and Paul Nowoczynski to review and confirm/correct the ideas I wrote about.
All of this meant that the post ended up taking longer than I usually give myself to write a post, but I think it turned out really well. I think it's one of the few posts out there that talk about how distributed consensus behaves as you shift parameters. And I was happy to get kudos from folks like Marc Brooker at AWS when I published.
I should say that I'm not sure my strategy of always trying to produce posts out of 500 lines of code is necessarily right for everyone. Some folks produce great longer-form posts and I have never written one of those kinds of posts. I also do bare minimum graphics because of the frequency and time limits I impose on myself.
Some developer-writers like Nanda Syahrasyad do a phenomenal job with custom visualizations. But these seem to take a long time to produce so you don't see new posts like this very often. And on the other hand, some excellent developer-writers like Murat Demirbas, Simon Willison, and Justin Jaffray are writing at least a blog post a week. Do what works for you!
Lessons learned + your advice for people just getting started with blogging?
So many lessons, so many suggestions, because I hear so many different reasons people have for not writing or writing but not completing and publishing. However, to summarize it all I would stress that when you speak humbly and in good faith, the internet is incredibly helpful and forgiving, whether you're an expert or not. So the stakes are just so low and the potential benefits to yourself and others are so great.
And in terms of what to write about, I think you should 1) write about whatever you feel like writing because the first big challenge is your own motivation and 2) focus on what is confusing to you!
Lastly, writing blog posts doesn't need to be a public thing! It's immensely useful to you and your team if you publish internal blog posts that the public will never see. If you can publish publicly, that is nice for you and the company. But don't be under the impression that if your company is particularly secretive, you can't participate in all the value blogging brings.
A few blogs that you particularly enjoy?
Not a few! I seriously enjoy and recommend the following: Eli Bendersky's, Chris Wellons's, Justine Tunney's, Ted Unangst's, Serge Zaitsev's, Daniel Lemire's, Wojciech Muła's, Tyler Neely's, Hillel Wayne's, Chris Siebenmann's, Michael Stapelberg's, Brendan Gregg's, Rachel Kroll's, Simon Eskildsen's, Dan Luu's, Micah Lerner's, Julio Merino's, Evan Jones's, Max Bernstein's, Andy Wingo's, Stefan Marr's, Laurence Tratt's, Fernando Borretti's, Abhinav Upadhyay's, Justin Jaffray's, Oren Eini's, Mark Callaghan's, Tanel Poder's, Alex Miller's, Jamie Brandon's, Andy Grove's, Murat Demirbas's, Jack Vanlightly's, Varun Upadhyay's, Marc Brooker's, Aleksey Charapko's, Daniel Abadi's.
I like these blogs because they are deeply technical, are regularly coming out with new posts, attempt to avoid bias, mostly show working/complete code, and respect the reader.
Anything else you want to add?
Thank you Cynthia and Piotr for the opportunity to share my experience! :)
***
Stay tuned for more tech blogger spotlights. Coming up: Scott Hanselman, Matt Butcher, Glauber Costa, Amos Wenger, Dan Luu… These will be mixed in with the monthly writethat.blog updates.
If you are looking for subjects, I’ve been writing about tech for a number of outlets for over a decade. LMK if you would like to talk!