At first, it was clean code, then automation and developer tooling. Nowadays, the topic that is piquing my curiosity is distributed systems, with a special interest for databases. I find it to be a good mix of theoretical research and practical concerns that help me grow as a software engineer.

Curating a good list of resources to learn about a topic is not easy, thanks to the internet’s enshittification. It takes time, but jumping from one source to another, you hopefully end up with relevant sources of information.

I also find myself often being too passive in my learning and not actively building things to consolidate my readings and listening. I must also deal with the fact that most of it happens when eating my cereal or when doing the weekly home cleaning 🤓.

Enough about me, let’s see what I have so far!

Books

  • Designing Data-Intensive applications This is the most cited book when it comes to distributed systems. It covers many concepts and is a must-read. The author is working on a second edition.

  • Database Internals The author is also hosting a Discord server with a book club.

  • Distributed Systems Co-authored by Tannenbaum, well-known for his textbooks on OS and networking. The book is available for free. I don’t think I managed to finish it, it is quite expansive, and I found some sections less interesting than others.

Research papers

I’m not going to list them individually here but there are many foundational papers that are worth reading. However, I find papers hard to read, I just don’t get the two-columns format, probably good to read them on physical paper.

Some lists to get started:

Individual blogs

These are the hardest to find because they are sometimes well hidden. It is also tricky to find active blogs (hey, I’m not going to criticize here, just look at this blog). Thanks to those authors for taking so much of their personal time to share their knowledge!

I miss High Scalability, that was a great source too.

Vendor blogs

Vendors being vendors, they are here to sell you their product, but it is often interesting to understand the inner workings of what they build.

Company tech blogs

There is less bias than in vendor writing and what works for them might not work for you, but at least they are usually sharing some grounded experience. They do not write about distributed systems specifically but they often have a post or two about a tricky database migration.

Podcasts

Great when driving, cooking or whatever chore you find boring.

Videos

The good thing is that many conferences are recorded and made available for free online. Generic conferences like Devoxx can be a starting point. There are also more specialized conferences like:

Universities are also putting their classes online, a good one is Introduction to database systems from CMU.



That’s it for me. Hopefully you have discovered at least one new source to learn more about distributed systems.