Book Review: Designing Data-Intensive Applications

This textbook is excellent and I wish I had read it sooner.

In particular, I have spent most of my career so far focused on gaining experience at work and on projects. That hands-on experience is key, but getting a larger overall picture of the world is also really important. Designing Data-Intensive Applications came out in 2017, which means I had been out of school for a while where, presumably, this book is more well known.

Many STEM careers can place you in a more academic position where I think reading the most up-to-date textbooks and papers is more common sense. But engineers in the private sector can obviously benefit from some textbook exposure as well to learn about the latest best practices and accumulated knowledge. What’s more, there are clearly benefits to the private firms whose employees would read this book! I’m fairly certain my old job had O’Reilly subscriptions, but I just didn’t know this was the thing to read.

As far as content, this book really focuses on everything you need to know about data backends. I’ve done a fair amount of work on front-end systems and building microservices, but ultimately my data systems exposure has been limited to fairly straightforward implementations. This book teaches you about replication, sharding, consensus and reliability, and also how to think about batch processing vs more static data. The O’Reilly site for the book contains the entire (extensive!) table of contents and I honestly recommend reading that if you have even the slightest interest in software, computer hardware, data systems, or the modern internet.

The detail is tremendous. At the risk of repeating myself, I really didn’t understand what I was missing or what I was getting into. I had thought about this as just another nonfiction book I was reading, but it really is a textbook which means it’s large (not just 500 pages, but textbook sized pages!) and dense. Taking notes, it was hard not to write something down for every paragraph, and so even my notes taken are intensely long.

The book is also quite clear in explaining everything so that it’s understandable. The only tiny quibble I had in the 550+ pages was that the author Martin Kleppmann has obviously not read Paul Sztorc’s “Nothing is Cheaper Than Proof of Work” despite it being written in 2015. But at least this was restricted to the speculative and opinionated final chapter, so I can’t fault it too much.

So of course, I would highly recommend it. I’m also somewhat excited as I’m wondering what other important texts I’ve been missing. I also think I’ve got a slightly better system for finding out what people at my current employer (Facebook) think are good programming/software books, so I’m hopeful it won’t be another 7 years before I read another important text!

Book Review: Unsong

This is the next installment in my push to read a book a month during 2018. So far, I’ve generally stuck to putting fiction book reviews on this blog, with nonfiction on my political blog.

Scott Alexander’s fiction story Unsong is a particular brand of humor and epic scope that I suspect only the rational community can come up with. I enjoyed this story immensely but I wouldn’t recommend it “cold”; the reader has to understand that this is an unusual take on fantasy and religion, and probably blasphemes frequently.

Unsong spends a lot of time worldbuilding. That may be a turn off to some people, but I found it very well done. A significant portion of the beginning of the novel is an exploration of the founding principle of Unsong‘s universe: what if the world turned out to actually follow Jewish mysticism? The world used to have a lot more theological magic in it, but over time, this “magic” was coalesced into more rigorous and mathematical physics until humans accidentally broke the machine running the world, and plunged everything back into chaos. Unsong‘s characters do not take this new world as is, they question it rationally, try experiments to see what works, and push boundaries. This magic follows rules and can be researched scientifically, grounded in reality, and in fact, Unsong‘s title comes from the United Nations Subcommittee on Names of God.  Perhaps more impressively, Unsong‘s bizarre world with angels and demons and true names of God and Kabbalah is all quite internally consistent.

The book also explores real theological challenges humans would have if we found out the divine existed. Most specifically, Scott tackles the concepts of theodicy, the question of why God is good given we see so much evil in the world.

If this sounds interesting, if philosophical theological debate in the midst of an epic religious magic fantasy storyline, oddly interspersed with whale puns sounds like something you might want to check out, I can assure you that Scott executes his story perfectly. The word “epic” is interesting when it comes to storytelling. It conveys usually that a story is great in length, which Unsong certainly is. It also implies great achievements done by heroes, which also applies here. But I feel a story has to be epic primarily for its scope and impact on the world and the characters. Length definitely helps with this; if an entire world is introduced in a single film, it’s hard for it to reach that “epic” feeling. This is part of the criticism of the DC universe films; they jumped quickly to world ending apocalypses when we hadn’t gotten a chance to really know the characters.

Unsong takes it time, starting from small stories of human and divine characters, slowly building the world and the stakes, foreshadowing and hinting at bigger events. The final story is epic in length, impact, and heroics; there is an excellent sense of divine oomph that the story leaves you with, having forced the reader to climb a mountain of understanding the world and its characters. I found my time well spent.