In the past I failed one job interview because I didn't asked enough critical questions and designed a system wrongly, so I decided to strengthen my knowledge about the topic and recently read the following book.
Author(s): Alex Xu
At more than 300 pages, it is not a small book but one that you can easily get absorbed by and read fast (even taking notes). It contains lots of scalability advices and tips, distributed among 15 (simplified) real-world scenarios. Each one is presented as a one-liner sentence with the exercise, like "Design a rate limiter", "Design a web crawler" or "Design Youtube". Then details the critical pillars to define, goes on details with each one, sometimes iterating adding complexity and features on each iteration (e.g. high availability, insane scalability, multiple devices, ...), and finally wrapping up with some closing details, extra points to maybe discuss if enough time, and the like.
There are many diagrams, the text is clear but direct to the point, most times not digging into unimportant details (and a few times leaving as homework checking them), and the structure and general discussion is great. The book also includes a handy back-of-the-envelope chapter to learn to do some calculations and estimations of storage, speed, capacity, scalability, bandwidth...
If I had to mention something to improve, it'd be the depth of some of the topics. While some scenarios get insane amounts of detail, others are very shallow, just mentioning pieces in my humble opinion way more important than others that are indeed extensively detailed. Doesn't happens often, and you can always go dig deeper by yourself.
Overall I'm really happy with the book, I summarized all scenarios and added additional details and a few new ones to practice, and now stands as a very valuable reference to me.