Books of 2024

Books of 2024

2024 is near its end and I would like to share which books I’ve managed to read this year.


I’ll use this blog post as a chance to re-visit the books and capture some of the highlights, in the order I’ve read them.

The Go Programming Language

The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan (2015)

This is not necessarily the book I would recommend for learning Go, but it can definitely be one of the books you might want to read. It provides a lot of examples, exercises and a great overview of the core concepts, but unfortunately some of those have changed over the years. I think that is understandable given that this is an older book.

While going through it, I’ve created a GitHub repository with all the code and with some of the exercises. I plan to return to the exercises I’ve skipped some time in the future.

I’ve also contributed to the original repository by opening a pull request to fix the getting started commands.

As a highlight I would like to point out the crawler application. During the first few chapters of the book, the reader is introduced to some simpler examples, like find links. Finally, it is all brought together in the mentioned highlight - to be able to concurrently crawl all the websites.

One more example to bring up would be the introduction of S-expression. This provides an interesting introduction on how Go uses reflection under the hood for things like print and how marshalling and unmarshalling work.

This book reminded be of some of the older books I used to learn programming in elemetary and high school.

Accelerate

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren, Jez Humble and Gene Kim (2018)

This book takes a deep dive into understanding of what makes high performing teams tick. What actually works and what does not? What makes a difference?

This book also enabled a culture shift in the industry. Here is a quote from the final chapter:

Software delivery performance is affected by many factors, including leadership, tools, automation, and a culture of continuous learning and improvement.

I especially like that last part, about building a strong culture of continuous learning. I might not be the target audience for this book, as it is aimed at technology managers - so people who can and should actually influence processes and cultural changes, but I was still interested in getting to know the roots of modern DevOps movement.

This book also provides research behind the statement releasing often makes better software. This is obviously my over-simplification of what it actually says in the book, but I can see this as an end goal. Building tools, processes and understandings to reach that goal is where fun and challenges are.

As a side note, this book is also an eye-opener on different techniques and processes used to gather and analyse data.

Site Reliability Engineering

Site Reliability Engineering: How Google Runs Production Systems by Niall Richard Murphy, Betsy Beyer, Chris Jones and Jennifer Petoff (2016)

I’ve got this book in paper format, but it is also available for free here. It gives a peek behind the curtain at Google’s Engineering. Since it also covers topics from 10 or more years ago, I was able to look into the past and find the roots of Kubernetes, Prometheus and Platform Engineering.

The most inspiring chapter for me was Chapter 15 - Postmortem Culture: Learning from Failure. Less because of it has to do with postmortem concept, but more because it shows the efforts needed to build a strong culture. Writing postmortems can easily be looked at as some bureaucratic process that juniors get to do at the end of an incident. How they have turned this around and worked hard to maintain that bar is amazing. For example, SREs at Google have activities such as: Postmortem of the month, postmortem group, Postmortem reading clubs, Wheel of Misfortune, etc. It is also emphasized that such efforts must be recognized and include participation even from senior management.

Another great example is in Chapter 26 - Data Integrity: What You Read Is What You Wrote on how to manage stored data. Backup is not something you have just to tick a checkbox, but rather an enabler to continuously exercise disaster recovery through restores. Once again, emphasis is on building a strong engineering culture through annual Disaster and Recovery Testing drills.

Both Postmortem Culture and Data Integrity chapters are re-emphasised in second-to-last chapter.

Let’s end with a traditional SRE saying:

Hope is not a strategy.

Conclusion

As mentioned, here are just a few highlights from the three books. There was so much more in there, and some of the information opened up a whole new realm for me. And that’s the whole point for me, to be exposed to new pieces of information. Some of it I could use directly, and some of it will be forgotten, but then might re-surface in the future, you never know :)

Looking forward to 2025 and some new books!