Skip to main content

2025 Spring SWE Reading Summary

· 6 min read

SWE Reading

I started catching up on some reading in the first quarter of 2025, likely fueled by some New Year’s resolution motivation. Reading books—mostly on software engineering and mostly from O’Reilly—has been more enjoyable than I expected. While it does sometimes take extra effort to find quiet moments to focus and work through a few chapters, I usually feel that it’s time well spent.

Of course, not all books (or chapters) hit the mark—some are too shallow, some hard to follow, and some more intense than expected, requiring re-reading or hands-on coding to fully grasp the concepts. I finished about three books this spring, with a fourth one paused due to some work and life distractions. I’m jotting down the reviews I had after reading them here—not only to leave a short record for my future self, but also to motivate myself to finish a few more books I have in mind for the upcoming quarter.

One tangential thought about reading: audiobooks help lower the barrier to getting started—they remove some of the stress or friction of grabbing a physical book (or ebook reader) and sitting down. That said, my mind tends to drift when I consume books (especially software engineering ones) in audio form. I do enjoy audiobooks, but I’ve learned I need to be cautious with them. Case in point: I’ve listened to Clean Code by Robert C. Martin a few times while commuting, running, or biking. Unsurprisingly, the book itself warns that you need to concentrate and work through the examples to really benefit from it—and going against the advice- it’s one of the books I remember the least.

Okay, let’s get to the books I read.

Developer Career Masterplan

Link: https://learning.oreilly.com/library/view/developer-career-masterplan/9781801818704/

Book Summary:

  • This book explores various activities that developers can engage in to advance their careers. It includes interviews in each chapter, providing real-life stories to complement the advice given.

Verdict:

  • Good read? Yes
  • Must read? Perhaps. Reading this or any similar book cover to cover can be beneficial to learn the wide range of activities that developers can engage in. It can be this book or others in the same category.
  • Thoughts:
    • The book is easy to read, with each chapter short enough to finish in approximately 15-20 minutes.
    • I found the point about user groups and participating in communities around a particular technology or programming language particularly interesting. I regret not doing this and would be keen to explore it in the future.
    • I found the following excerpt particularly enlightening regarding soliciting better feedback:
      • Ask how you are doing in any given circumstance, and ask whether there is anything that you may have missed or that you could have done better. Often, it is automatic to answer the question “How am I doing?” with “Great,” “You’re doing fine,” or “Keep up the good work.” This is not necessarily helpful or specific. On the other hand, when you ask “Is there anything that I can do to improve?” or “Did I miss anything?”, there is more actionable information in the answer that you will receive that will help you to adjust your performance and work habits. These are all fundamental questions that can help you in your career. Asking them is essential, but listening and incorporating the answers into your daily work will be required in order to achieve the benefits.
    • Overall, I find the book a good read. It makes me wonder why I was not able to follow the advice more religiously despite knowing or learning the ideas from the book. It motivates me to now understand what can be done and to work on them to grow as a developer.

97 Things Every Programmer Should Know

Link: https://learning.oreilly.com/library/view/97-things-every/9780596809515/

Book Summary:

Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.

With contributions from some of the most experienced and respected practitioners in the industry--including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more--this book contains practical knowledge and principles that you can apply to all kinds of projects.

Verdict:

  • Good read? Yes
  • Must read? Maybe, maybe not
  • Thoughts:
    • Easy to digest, each "thing" is a short enough article that can be read in 2-3 mins
    • Reflects on almost all things related to software engineering, hence comprehensive
    • The tips/advice sometimes capture things that I would similarly conclude from own experiences, so that validation helps me confirm my suspicions about some practices/thinking.
    • Some tips are more "common sense" than others.
    • Perhaps a good source of information for junior developers.

Some short but witty quotes from the book:

Too much logging can be as useless as none at all.

For example, we prefer to say run instead of walk(true), even though it could be viewed as essentially the same operation, just executed at different speeds.

The fact that two wildly different parts of the system performed some logic in the same way meant less than I thought.

The libraries of shared code I created tied the shoelaces of each foot to the other.

Architecture Patterns with Python

Link: https://learning.oreilly.com/library/view/architecture-patterns-with/9781492052197/

Book Summary:

  • This book introduces various architecture patterns with examples in Python. You can expect to become familiar with patterns such as "repository," "unit of work," and "event-driven." The book effectively chains most of the concepts together with one unifying example project, which helps provide a thoughtful view of how one can evolve a project to adopt suitable patterns as it grows in complexity.

Verdict:

  • Good read? Yes
  • Must read? Perhaps. It explores some of the more complex/sophisticated patterns that I was previously unaware of.
  • Thoughts:
    • I like the fact that the book uses a single project (most of the time) to illustrate the applicability of the patterns. Since the language is Python, the examples are fairly easy to understand, and the patterns are well illustrated.
    • Around the midpoint of the book, when it progresses to the "unit of work" pattern, I personally find it getting more complex and too abstract. Perhaps I don't have a full understanding of "unit-of-work"; this pattern building on top of the "repository pattern" makes the abstractions hard to grasp.
    • The second half of the book is mostly on the event-driven approach, which can become harder to follow with more moving parts. I like the explanations around hexagonal architecture and how the book introduces and utilizes a service layer to help connect the domain and the orchestration code.
    • Overall, I think the book provides a well-balanced introduction/argument for the patterns it advocates. It also offers some sound advice should one decide to implement the changes in their codebase. I read the book twice, and I might actually read it a few more times or extract some of the ideas to experiment with.