5 Essential Books to master Backend Engineering

Chris Schnabl
4 min readMar 21, 2020

--

Photo by Omar Flores on Unsplash

If you are, like me, a curios never ending learner and believe that software engineering is not just knowing all the frameworks but more about really understanding the bare-bone basics, then the following books will help you step up your game.

Not relying one short therm hyped technologies, but understanding the fundamental principles behind is a more sustainable commitment and will greatly benefit you.

Without further ado: Here is my top 5 list of books to master Backend Engineering by understanding the underlying principles:

TL;DR:

  1. Distributed Systems — Principles and Paradigms
  2. Seven Concurrency Models in Seven Weeks
  3. I ❤ Logs
  4. Designing Data-Intensive Applications
  5. Building Microservices

Okay one final note — The following books are language and technology agnostic. In the following I will give a quick overview over each book, outline the learning goals and how to approach the books. The list is sorted with the most abstract (theoretical) books first and the last being the most practical oriented.

I already assume you read some basic books for effective software engineering. Hit me up if I should do a follow up on that.

Distributed Systems — Principles and Paradigms

The book that initially brought me to studying distributed systems. It covers fundamentals and is not the most recently published book. Hence, the principles it explains will last for the next years and decades to come. The authors empathise on making resources available and that distributed systems are the last resort to do so.

Learning goals

You will learn about the following topics:

  • Distributed System Architectures (fundamentals for — Designing Data-Intensive Applications)
  • Processes, Threads, Clients and Servers (fundamentals for — Seven Concurrency Models in Seven Weeks)
  • Communication (sync/async RPCs, message-oriented, stream-oriented) (fundamentals for — I ❤ Logs)
  • Synchronisation (physical/logical clocks, mutual exclusion, leader election)
  • Replication, Consistency, Fault-Tolerance, Security (fundamentals for Building Microservices)
  • Examples of Distributed Systems

Methodology

I highly suggest to work through the first nine chapters carefully. The last couple are interesting example of distributed systems but not necessarily important to understand the following books. I understand that the book might seem very theoretical to you but DO NOT skip the examples provided after each topic. Take your time and practice them. This will help you connect the dots in real-world-examples.

There are so many more great books by Andrew Tanenbaum et. al. (go and read them all :D).

Seven Concurrency Models in Seven Weeks

This book is the logical next step if you already read the Processes and Threads chapter of the first books. It teaches concurrency concepts in a more hands-on way. Hence it has to use specific languages, but the paradigms taught apply to any language.

Learning goals

  • Threads and Locks
  • Functional Programming (from a concurrency point of view)
  • Separating Identity from State (Clojure-like)
  • Actors (Actors communicate, Objects just pass messages)
  • Communicating Sequential Processes (e.g. via channels)
  • Data parallelism
  • The lambda architecture

Methodology

If you are not familiar with the Seven X in Seven Weeks concept. It aims at teaching you a broad conceptual view on some topic (programming languages, databases or concurrency) by giving you hands-on tasks. Each chapter is tailored to be solved within a weekend (starting with a swift introduction on friday). However, those weeks must not be in a row. I would really suggest you work through all the provided concepts.

I ❤ Logs

This one is the shortest book by far but covers an interesting concept in software architecture you might not have encountered, yet. And even if you did (databases — redo/undo logs, application/server log files, …) it will give you a drastically different perspective on the abstract concept of logs/distributed logs .

Some highlights

  • Logs in databases and distributed systems
  • Log- Table Duality
  • Logs for Data Integration (e.g. ETL/ELT in Data Warehouses)
  • Logs for Service Decoupling (you will read more of that in the building microservices book)
  • alternative perspective on the lambda architecture

Methodology

  • Just enjoy and relax

Designing Data-Intensive Applications

Books like this are a rare find. It covers all the relevant topics while building data-intensive applications without lacking the theoretical fundamentals and is explained in an understandable and easy fashion. If you ever read this post, thank you Stefan for this wonderful book recommendation :)

Main Topics Covered

  • Reliable, Scalable and Maintainable Systems
  • Data Models, Encoding, Storage Retrieval and Evolution
  • Replication, Partitioning, Transactions, Consistency
  • Batch and Stream Processing

Methodology

  • Chapter after Chapter

Building Microservices

This one might sound kinda buzzwordy to you and I admit it would if it was not of such a high quality contentwise. It operates at a higher conceptual level and really helps you to reflect on all the theoretical foundations you learned before.

Learning Goals

  • Get an overview of Microservices
  • Learn when not to use Microservices
  • Understand how Microservices evolved based on what you already know from distributed systems
  • Grasp that architecture is in contrast to distributed systems is not only a technical but organisational task

Methodology

Read the chapters in the order you feel its makes sense (that is how I did it).

Please do not hesitate reaching out tot me or sharing your thoughts. Why not drop me a line?

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response