Designing Data-Intensive Applications by Martin Kleppmann

Designing Data-Intensive Applications by Martin Kleppmann

If you ask me today what one book of all books I must read to understand software development, this is it. It goes into every little detail about how the software will break and gives you tools to avoid that.

The name is a bit misleading. For some reason, I was expecting terabyte-crunching algorithms from the beginning. But no, the book covers cases from your load that can fit into the memory of one machine, and one core is enough - to multi-datacenter transactions and batch processing.

My only complaint - it is huge. Which is understandable, given the number of topics covered.

Original Title: Designing Data-Intensive Applications

ISBN: 1449373321 (ISBN13: 9781449373320)

GoodReads: 4.71 / 5

Crafting Interpreters by Robert Nystrom

Crafting Interpreters by Robert Nystrom

I wish all technical books were this good.

Systems desigh interview by Alex Xu

Systems desigh interview by Alex Xu

The high-level design of different systems, from URL shorteners to YouTube.

A Philosophy of Software Design by John Ousterhout

A Philosophy of Software Design by John Ousterhout

The must-read for software engineers.