· all posts

Programming blogs that go deep

My favorite way to spend a few hours is to dive deep into a topic, and often I need a good starting place. Over the past few years, I have come across blogs that I always come back to. The authors of these blogs put significant effort into their writing.

These blogs are about programming, not something like enterprise architecture, which you can definitely write in-depth posts about, but which is not the focus of the blogs I have listed here.

This selection of blogs has been influenced by what I personally enjoy thinking about. There many areas within the software field, from low-level embedded systems to the marketing that is inevitably required when creating your own software product. These blogs focus mostly on developing software, at the level of the programming language. It’s hard to describe, but I hope it gets the point across. These blogs are not about engineering management, nor are they about programming robots.

I’ll go through them one by one and describe what caught my attention the first time, and what keeps me coming back.

  • Dave Cheney — Dave writes about Go, and has been for quite some time. He’s been writing consistently since 2010. I found this blog while learning Go. The posts are on the shorter side, but after reading many of them, I have learned a lot of the nuances of writing software in Go.
  • Nikita Tonsky — The first article of Nikita’s that I read was Software disenchantment, most likely because of its popularity. Its examples will unfortunately become dated quickly. Readers will have to read closely to understand the post’s main point ten or twenty years from now. However, this popular article introduced me to a lot of the other ones on this blog, my favorite one being about monitors. After reading that one, I feel like I will never look at characters on my display the same way. It has provided fundamental insights into the things that programmers see the most: characters on a screen.
  • Dan McKinley — Dan’s talks, which are nicely presented, highlight lessons learned from years of engineering experience, most notably as an early engineer at Etsy. Like Nikita’s blog, the popularity of Choose Boring Technology has the author writing “I have largely come to terms with it and the reality that I will never escape its popularity.” A good follow up to this is Dan’s post on using Clojure all day at work, surely something that Java developers can only dream of. In reality, it may not be like that, and that’s what Dan explains well in his writing.
  • Paul Graham — Though less about programming, these thoughts come from someone who has made their own Lisp, and I’ve bookmarked a few of these as life lessons I should always keep in mind. His arguments are solid.
  • Aphyr — There are a lot of words here, and a lot of long pieces, but these interview novels are gold.
  • Dan Luu — Just about everything that Dan writes is refreshingly clear and actionable. If you like Paul or Nikita’s writing, you’ll like this one.
  • Thesephist — Less popular than the others on this list, but near the best when it comes to depth and learning. He had a blog just for in-depth programming topics, but it seems like I can’t find it. If you do, let me know!
  • Colin Breck — Data streaming and with some engineering leadership in between.
  • Stevey’s Blog Rants — A classic, more humor than the others.
  • Stevey’s Drunken Blog Rants — Even more classic.
  • fasterthanlime — Long articles and series of articles. Seriously. You know those “10 minute read” things at the top of articles? This blog has those, but they are measured in hours.
  • Brandur — The place to go to if you want to know more than you should about Postgres.
  • Ted Kaminski — I’m going to be honest. I haven’t read a single thing here, but it’s been in my bookmarks for a long time and looks decent.
  • Irrational Exuberance — Okay, I lied. This one is all about engineering management.
  • Thorsten Ball — From the author of the books Writing An Interpreter In Go and Writing A Compiler In Go. The author himself says, “I’m a big fan of digging deep and peeling away at abstraction layers to get a better sense of what I’m working with and more leverage higher up.”
  • programming is terrible — The writing is more serious than the title implies.
  • ferd.ca — I didn’t know what makes Erlang special before, but now I do and it’s such an elegant way to solve problems.
  • Made of Bugs — I’ve been using Linux as my primary operating system for several years now, so the bits of Linux thrown in are enjoyable. There are gems like Design for Testability.

That’s my list! It’s what I’m reading now, and it will certainly change after I write this. Hopefully someone who likes programming will find these blogs to be insightful!