Patrick Desjardins Blog
Patrick Desjardins picture from a conference

The Reasons Why I Wrote a System Design Book

Posted on: 2024-11-07

In 2023, I was in a period of interviews for a new job. The process splits the interview in three topics: algorithms, system design and behavioral. The system design was interesting as it has a large scope of potential questions. Most of the questions are about design that most engineer never had to do completely as they will be part of the large initiaitive of the company. Nonetheless, to prepare to these questions, I gathered many notes that became a large data set of random copy-paste from the Internet but also from my own experience. After two months of interviewing, I landed a job and thought that the next time I would need to interview I would need to get back to these notes. But I realized that I would need to reorganize them and make them more readable. That's how I started to write a system design book.

Full-Stack Distributed System Design

Reason 1: Reorganize my notes to a single solution

The first reason was to reorganize my note. I had them divided in many page in Microsoft One Notes but there were not easy to get a clear interpretation of them. All system can be designed in different ways but in an interview you need to converge into a single solution. Thus, I wanted to find my single solution to each problem.

Reason 2: Fast access to the content

Another reason to tidy my notes was that if I needed to interview, I wanted to avoid juggling all the notes to find the right one. I wanted to have a single book that I could read and review before the interview. But, besides the system design, I wanted a quick refresher on patterns, technologies, and concepts that I do not use daily. Fast access shaped the book by having a first part on common concepts, followed by technologies, and finally, system design.

Reason 3: Review my understanding

In the rush of interviewing, my head was to land a job. While I have experience and did a lot of research, I was not in a calm state of mind. Writing the book showed me that a few concepts needed to be clearer than I thought. Writing helped me review my understanding and ensure I got all the important concepts. Also, while reviewing each chapter, there was a time when I needed help understanding my writing. This was a good sign that I had something in mind, I wrote it down, but I wasn't clear. Sitting down and re-writing the portion until it was clear was a good exercise.

Reason 4: Simplify the Content

There are many YouTube videos, Wikipedia articles, and websites with system design information. However, I found that many skip the basics by assuming that you know them. I wanted to write a book that has the fundamentals and then builds on top of them. That is the reason the book title is "W3H." The book summarizes all concepts with "What it is," "Why it is important," "When to use it," and "How to use it."

Reason 5: Share my knowledge

Ultimately, I could have kept this collection of notes for myself. However, I know many people are going through the same process. I wanted to share my knowledge and help them to land a job. I understand that the book will not be perfect but it will help someone better understand system design and land a job.

Conclusion

While the Internet has a fast amount of information about system design, if you are looking for curated content, you might want to check my book. It is available on Amazon. If you are still working in a large company, the book is eligible for a refund of part of your company learning budget. The book is marketed for full-stack distributed system design and is not interview-specific.