2019 Books

Posted: 8 February 2019

Refer to First Post of 2019 for my thoughts on the books read in 2018. Looking forward to populating this page with more books in 2019!

21 Lessons for the 21st Century - Yuval Noah Harari

1st February 2019. This was a lot more refreshing than Homo Deus, though there are overlapping themes with Sapiens and Homo Deus. I really liked Harari’s idea of how “everything” is a construct - for example, countries are a construct. He ended the book with Meditation, and this coincided with the current trend of everyone meditating. Calm and Headspace are such examples, and the former company raised a whopping sum recently and achieved unicorn status. It’d be exciting to see how humanity develops over the next few years.

A Gentleman in Moscow - Amor Towles

8th July 2019. This book was one of the 5 books Bill Gates recommended reading for the summer of 2019. The book revolved around the life of a person living in a hotel as he was under “house arrest” there. When you first hear of it, it would seem boring but the author did a really good job of giving a glimpse of Russian history through a character.

Clean Architecture - Robert C. Martin

24th July 2019. If there is a book you should read about software architecture, it has to be this. It can be read from end to end and gives you great insight into how to build maintainable software and not overengineer.

Structures - J. E. Gordon

6th July 2019. I picked up this book because I saw that it’s one of the books that Elon Musk recommended - thought it must be good. It turned out to be a really interesting read. Whenever I look at structures now, I look at them with greater intent. For example, I’ll observe a building in New York City and wonder if the window is there because of the beam or because there’s reinforced concrete. If I look at bridge, I will observe the way it’s built and how the forces are spread. I also think of I-Beams as simply 2 flat pieces of metal supported by an “infinite mesh”.

The part on having large safety tolerances was insightful. We have to factor that into buildings as lives are involved, but for some reason, we do not do that for software. Why can’t we engineer large safety tolerances into software and build more stable products that are less buggy. When constructing a building, it has to be perfect. When constructing software, it seems like we allow for errors. To be fair, it’s not a direct comparison as a building takes 3 to 5 years of planning and another 5 to 10 years for construction. In a nutshell, I’m wondering how we can improve the software construction process.