2024 Reading list
Here is a list of the books related to computers and work which I have read this 2024. The list is ordered based on the date when I finished the book.
Fundamentals of Software Architecture by Mark Richards & Neal Ford
Overview of the software architect role. Extense collection of architecture characteristics.
Takeaways
From this book I took a template for architecture decision records.
Learning Helm by M. Butcher, M. Farina, J. Dolitsky
I read this book to prepare for a project at work and after taking a course on k8s late on 2023.
Due to business decisions I have no made use of the knowledge acquiered here.
I would like to find use cases for Helm and K8s, either at work or home. When this happens I will revisit this book.
Tidy First?: A Personal Exercise in Empirical Software Design by Kent Beck
One of the main ideas discussed in this book is when refactoring shall be done:
- Before new feature?
- After new feature?
- Never?
The book provides some good factors to consider when deciding when to refactor. I have used some of this factors to change the point of view of our product team and buy them in an early refactor.
Takeaways
- Complexity is driven by coupling. The more coupling the more complex the system is.
- Keep doors open. Write software in a manner that it is easy to update.
Uncommon Sense Teaching by B.Oakley
Good explanations about different learning techniques. Good tips for when dealing with children.
Implementing Service Level Objectives: A Practical Guide to SLIs, SLOs, and Error Budgets by Alex Hidalgo
This was the second time I tried to approach this book. However I did not finished it this time either.
How to Make Things Faster by Cary Millsap
Includes some interesting stories from the author professional experience.
Takeaways
Looking at the right it.
Some rules for the day to day:
- Performance can be improved by either reducing execution time and/or reducing number of calls
- Performance must be treated as a feature
When it feels like apocalypse collect a list of pain points sorted by business priority and tackle them one by one.
A philosophy of software design by John Ousterhout
Some of the covered topics:
- Software complexity, including complexity symptoms and causes of complexity
- Modules depth
- What to put together and what appart, very handy for some refactors
- Writting and maintaining comments
Concepts to remember
- Change amplification
- Cognitive load
- Unknown unknowns
- Design obscurity
- Shallow/Deep modules
Takewaways
Avoid error handling and special cases as much as possible. Error handling decreases performance and increases complexity. When handling an error ask yourself, do we really need to handle this error?
Practice deliberate software design, specially when doubting about different approaches. On this case, create different desings, as different as possible, write the benefits and the downsides of each design. Record the decission and revisit it later.
Chip War: The Fight for the World’s Most Critical Technology by Chris Miller
I was put off by the the first few chapters of the book, which main focus seems to be the military interests on technology and how those interests helped the hardware industry make progress. However, the focus moves on from military and I end up enjoying the book more a lot. It is an easy read and provides insights on the chip manufacturing world.
Slow Productivity: The Lost Art of Accomplishment without Burnout by Carl Newport
This book discusses how to achieve more and avoid burnout at the same time.
Takeaways
- Alternate high intesity cycles with down time
- Focus on fewer things
- Focus on quality
Multipliers: How the Best Leaders Make Everyone Smarter by Liz Wiseman
Although this book does not focus on software or pc related stuff it helps a lot improving soft skills. I am not myself very interested on achieving a managerial or leadership positions, but the book provides a lot of information about how to improve my communication with colleagues.
I have already started using some of the concepts here and will focus on them over 2025.