DEV Community

Cover image for Books That Helped Me Become a Tech Lead
Frank Rosner
Frank Rosner

Posted on

Books That Helped Me Become a Tech Lead

Why Books?

When developing my skills, I like to use a combination of conference talks, video tutorials, books, papers, blog posts, learning-by-doing, and teaching/blogging. Books are a great way to learn from the mistakes other people have made, to be inspired by their successes, and to experience their accomplishments second hand.

In this blog post I want to share my favorite books that helped me the most in my journey from being a senior software engineer to becoming a tech lead. They helped me to broaden and deepen my understanding about software engineering, software architecture, and building and running a software business. They taught me to challenge and shape my behaviour and habits. Some of them deeply affected my personal and professional life.

It goes without saying that reading those books will not automatically get you promoted or land you a new tech lead role. Of course, you still need to get your own experiences, make your own mistakes, and have that little bit of luck required. It is also important to constantly sharpen your technical knowledge and skills based on the specific domain you are working in. The books on this list do not focus on specific technologies, but rather on general principles and concepts that are applicable to any technology stack and business.

For each book on the list, I will include a brief summary that can help you judge whether the book is relevant to you. To give it a personal touch, I will also include the most valuable lesson I learned from the book. This is not necessarily the main message of the book, nor the only important one, but rather the one that resonated with me the most.

The List

Design It!

Design It!: From Programmer to Software Architect by Michael Keeling is a comprehensive guide aimed at software developers who aspire to transition into the role of a software architect. The book provides a pragmatic and accessible approach to software architecture, emphasizing the importance of design in creating effective software systems. Keeling covers a wide range of topics, from foundational principles of software architecture to practical techniques for designing scalable and maintainable systems.

Throughout the book, Keeling advocates for a hands-on, iterative approach to software design, encouraging readers to think critically about the architectural choices they make. He introduces various architectural styles and patterns, and discusses how to evaluate trade-offs and make decisions that align with the goals and constraints of a project. The book is filled with real-world examples, exercises, and practical tips, making it a valuable resource for those looking to develop their skills in software architecture and design.

The most valuable lesson I learned from the book: There is no such thing as "no design". "No design" often means multiple, implicit designs, in the heads of your engineers, that are not aligned with each other. Design explicitly, collaboratively, iteratively, and document the design in a written form!

Release It!

Release It!: Design and Deploy Production-Ready Software by Michael Nygard is a critical guide for software developers and architects focused on the challenges of creating software that performs reliably in production environments. The book delves into the complexities of designing, deploying, and maintaining software that can withstand the rigors of real-world operations. Nygard emphasizes the importance of considering production realities from the beginning of the design process, advocating for a mindset shift from merely writing code to delivering a resilient, scalable, and maintainable system.

Nygard provides insights into the various pitfalls that software systems encounter in production, such as network issues, unpredictable load patterns, and hardware failures. He introduces concepts like stability patterns and antipatterns, illustrating how to build systems that can gracefully handle failure and remain robust under stress. The book is enriched with real-life stories and case studies that demonstrate the catastrophic consequences of poor system design in production settings. "Release It!" is a valuable resource for software professionals seeking to ensure their systems are not just functional, but also resilient and reliable in the face of real-world challenges.

The most valuable lesson I learned from the book: Every software engineer should build their software with production in mind. Software in production is what runs your business, impacts your customers, and determines success or failure.

Site Reliability Engineering

Site Reliability Engineering: How Google Runs Production Systems authored by Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy, is an insightful exploration into the practices and principles that Google employs to manage its large-scale, highly reliable systems. The book introduces the concept of Site Reliability Engineering (SRE), a discipline that blends aspects of software engineering with IT operations, focusing on creating scalable and reliable software systems.

The authors, all experienced practitioners in SRE at Google, share their expertise on how to build, deploy, monitor, and maintain systems that are robust and resilient. They delve into the specific strategies and techniques Google uses, such as setting service level objectives (SLOs), managing change effectively, and balancing the need for release velocity with service reliability. The book covers a range of topics from organizational aspects of SRE teams to technical practices like incident management and post-mortem culture. The book offers a rare glimpse into the inner workings of one of the world's most proficient engineering organizations and is a valuable resource for anyone involved in the operation, maintenance, and scaling of large systems.

The most valuable lesson I learned from the book: There are no perfect systems. By explicitly defining and measuring SLOs and error budgets, you can make informed decisions about the trade-offs between reliability and velocity.

Change Your Questions, Change Your Life

Change Your Questions, Change Your Life: 12 Powerful Tools for Leadership, Coaching, and Life by Marilee Adams explores the profound impact that the questions we ask can have on our lives and careers. Adams introduces the concept of "Question Thinking," a method of transforming thinking, action, and results through deliberate and mindful questioning. The book emphasizes how the types of questions we ask ourselves, ranging from limiting, judgmental "Judger" questions to more open, constructive "Learner" questions, can significantly influence our outlook and outcomes.

Adams illustrates her ideas through a compelling narrative, following the story of an individual struggling with life's challenges and learning to apply the principles of Question Thinking. This approach offers practical tools and techniques for individuals to improve their communication, decision-making, and problem-solving skills. By fostering a Learner mindset and asking better, more empowering questions, readers are guided towards more positive and productive personal and professional relationships. The book is particularly valuable for leaders, coaches, and anyone looking to enhance their ability to connect with others and navigate complex situations more effectively.

The most valuable lesson I learned from the book: I realized how often I am in the "Judger" mindset. Being more mindful about that, and consciously choosing to shift to a "Learner" mindset became almost like a super-power for me to solve any challenge I am facing.

Thinking, Fast and Slow

Thinking, Fast and Slow by Daniel Kahneman is a groundbreaking exploration of psychology and economics, delving into how we think and make decisions. Kahneman introduces two distinct modes of thinking that dominate our mental processes: "System 1" (fast, intuitive, and emotional) and "System 2" (slower, more deliberate, and more logical). Throughout the book, Kahneman explores the impact of these two systems on our judgment, decision-making, and the way we perceive the world around us.

The book is a comprehensive journey through various cognitive biases and heuristics that influence our everyday thinking. Kahneman demonstrates how our intuitive System 1, which often serves us well, can also lead to profound errors and biases. He also explores the capabilities and limitations of System 2, emphasizing how it can be influenced and overruled by the quick judgments of System 1. The book is a synthesis of decades of research, providing deep insights into the complexities of human thought and behavior. It's an essential read for anyone interested in understanding the mental processes that underlie our choices and actions in both personal and professional contexts.

The most valuable lesson I learned from the book: I learned that both modes are valuable, but also have their drawbacks. I learned to be more aware of the biases and heuristics that influence my thinking, and to consciously choose when to rely on System 1 and when to engage System 2.

Atomic Habits

Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones by James Clear is a transformative guide that delves into the science of habits and how small changes can lead to remarkable results. The author presents a comprehensive framework for understanding how habits form and offers practical strategies for cultivating good habits and breaking bad ones. The core philosophy of the book is that minor improvements, or "atomic habits", can accumulate into significant, life-altering outcomes over time.

Clear emphasizes the importance of systems over goals, arguing that focusing on the processes and systems that lead to a goal is more effective than fixating on the goal itself. He introduces the Four Laws of Behavior Change – a set of simple, actionable principles to guide habit formation. These include making cues obvious, cravings attractive, responses easy, and rewards satisfying. Through a combination of scientific research, personal stories, and real-world examples, Clear illustrates how these principles can be applied to various aspects of life, from fitness and financial management to productivity and personal growth. "Atomic Habits" offers an accessible and compelling blueprint for building habits that stick and is valuable for anyone looking to make positive, lasting changes in their life.

The most valuable lesson I learned from the book: By making many small changes to my daily routine, that individually only affect my productivity by a small amount, all of those habits combined make a huge impact.

Conscious Business

Conscious Business: How to Build Value Through Values by Fred Kofman is a thought-provoking book that explores the intersection of personal integrity and professional success. The author presents the idea that the key to creating a successful and sustainable business lies in conscious management practices, where personal values and ethical principles are at the forefront of decision-making processes. The book argues that success in business is not just about financial gain but also about achieving personal and professional fulfillment.

Kofman discusses various aspects of conscious business, including accountability, responsibility, emotional intelligence, communication skills, and the ability to resolve conflicts constructively. He emphasizes the importance of leaders who can inspire trust, cultivate a culture of openness and honesty, and lead with empathy. Through real-world examples, practical advice, and exercises, Kofman guides readers on how to develop these skills and apply them in their professional lives.

The most valuable lesson I learned from the book: The concept of unconditional response-ability. I now constantly remind myself that I have the power and responsibility to choose my responses to any situation, regardless of the circumstances. "Response-ability" is a play on the words "response" and "ability," highlighting the ability to respond consciously and proactively.

First, Break All The Rules

First, Break All the Rules: What the World's Greatest Managers Do Differently by Marcus Buckingham and Curt Coffman presents a radical approach to management based on research conducted by the Gallup Organization. This book challenges conventional wisdom about leadership and management, proposing that the most effective managers often defy standard practices.

The core message of the book is that great managers don't follow a single mold or adhere strictly to traditional management principles. Instead, they break the rules by focusing on their employees' individual strengths rather than trying to correct their weaknesses. The authors argue that this approach leads to higher engagement, productivity, and overall job satisfaction.

Buckingham and Coffman identify key insights and strategies that set apart the world's best managers. These include the importance of selecting talent over simply filling positions, defining the right outcomes rather than dictating the right steps, focusing on strengths rather than obsessing over weaknesses, and finding the right fit for employees rather than simply promoting them to the next rung on the ladder.

The most valuable lesson I learned from the book: The importance of focusing on strengths rather than weaknesses. I learned to accept my weaknesses as such, and use tools and strategies to compensate for them, rather than trying to "fix" them. Instead, I invest my time and energy into developing my strengths, and I try to do the same for the people I lead.

Honorable Mentions

There are many more books that I found valuable on my journey from senior software engineer to tech lead. They are more focussed on specific technologies, which is why I did not include them in the main list. Nevertheless, I want to mention them here, as they might be relevant to you depending on the field/industry you are working in.

  • Database Internals by Alex Petrov. The best book on databases I have ever read. It covers all the fundamentals of databases in a very accessible way. It is a must-read for anyone working with databases.
  • Designing Data-Intensive Applications by Martin Kleppmann. A comprehensive guide to building data-intensive applications. It covers a wide range of topics, from databases and data processing to distributed systems and stream processing.
  • Oracle JRockit: The Definitive Guide by Marcus Hirt and Marcus Lagergren. A great resource for anyone interested in JVM internals.
  • The Linux Programming Interface by Michael Kerrisk. A very detailed book about Linux, that covers a wide range of topics, from basic system calls to advanced topics like process groups, signals, and sockets.

Final Thoughts

While books are a great tool to learn, they are not a substitute for first-hand experience. You still need to make your own mistakes and learn from them. It also helps to talk about the books you read with others, to get their perspective and to challenge your own views. Maybe you can join a book club, or read the book together with a colleague or friend.

I hope this list will help you on your professional journey. If there is a book that inspired you and that you think should be on this list, please let me know in the comments below.

Top comments (31)

Collapse
 
tensorprogramming profile image
Tensor-Programming • Edited

This is a pretty good list. Some of these are metatextual and could be read regardless of the field you are involved with.

Here are some programming specific must reads to supplement your list. All of these are relevant regardless of skill or experience: The Mythical Man-Month, Compilers: Principles, Techniques, and Tools (the dragon book), The Pragmatic Programmer, and Structure and Interpretation of Computer Programs (SICP). I could probably name off at least 10 more, but these are a the tippy top of the books I consider to be must reads.

The main takeaway from The Mythical man month is that throwing more people at a problem is almost always going to be counter productive; it teaches you value of time and planning (I'm generalizing here). This is the book that I point to when an investor or higher up causes some issues due to time crunch and its saved a few projects that I've been on.

The dragon book is worth reading even though it's somewhat dated because it's a compiler bible. Regardless of if you're ever going to work on or build your own compiler, its always useful to understand the basics especially given how ubiquitous they are in our field.

The Pragmatic programmer covers personal responsibility, career development, architectural techniques, and programming by coincidence aka the value of luck. Its a great metatextual read for learning how to approach a project efficiently.

SICP is probably the best programming textbook ever written. (The 2nd edition from 1996 is also free). There is a new edition that was published in 2022 and a JavaScript edition (if you don't want to learn lisp). It's a book that's worth reading regardless of skill; I've reread it at least 5 times over my career. Regardless of how much of an expert you are in the field, it can never hurt to refresh yourself on the basics.

It never hurts to sit down and read a good book even when you might feel overwhelmed.

Collapse
 
frosnerd profile image
Frank Rosner

Will check them out, thanks for sharing!

Collapse
 
icanhazstring profile image
Andreas Frömer

Add one more to the list, which will improve the way to let your peers and yourself grow.

Hidden Potential by Adam Grant

Collapse
 
frosnerd profile image
Frank Rosner

Will check it out, thanks for sharing!

Collapse
 
proteusiq profile image
Prayson Wilfred Daniel

So much I have to read.

As I moved towards leading role, my book shelf start changing from
software development like, Clean Code - Roberet C. Martin,
and Principles of Package Design - Matthias Noback to Thinking, Fast and Slow - Daniel Kahneman, Team Topologies: Organizing Business and Technology Teams for Fast Flow -Manuel Pais and Matthew Skelto

I discovered lots of leadership books that helps me be a servant leader, organise my teams and projects, in fast pace world.

Thank you for sharing your list.

Collapse
 
frosnerd profile image
Frank Rosner

Yeah same for me!

Collapse
 
greenteaisgreat profile image
Nathan G Bornstein

Looks like some interesting reads in there! Thanks for sharing. Have you heard of "Structure and Interpretation of Computer Programs"? Specifically the JavaScript version is the one I'm thinking of. I haven't read it yet, but I've heard it's considered to be one of the holy grails of computer science reads.

Collapse
 
frosnerd profile image
Frank Rosner

Will check it out, thanks for sharing!

Collapse
 
emmascript profile image
Emma • Edited

The other books that have been recommended to me:

  1. The Manager’s Path (Camille Fournier)
  2. Staff Engineer: Leadership Beyond the Management Track (Will Larson)
  3. Engineering Management for the Rest of Us (Sarah Drasner)

Thank you for sharing!

Collapse
 
frosnerd profile image
Frank Rosner

Thank you so much for sharing! I will check those out :)

Collapse
 
serge4687 profile image
Serge

Hello everyone. Which book would you recommend to read first for someone looking into becoming a Lead Engineer? I am already good on the technical side, and I am interested more in non-technical content, which can provide good value in developing leadership skills and habits. The book will not be necessarily theoretical but rather described more from a practical point of view with good explanations, examples and practical advice. I hope this book exists; if not, what would be a good bet for me? :)

Collapse
 
frosnerd profile image
Frank Rosner

Which books did you read so far? From my point of view, effectively leading others requires you to effectively lead yourself. So you can start with any of the books from my list I guess. They are all useful and practical. Maybe just pick one that resonates with you the most and go from there?

Collapse
 
serge4687 profile image
Serge

Thanks, will pick one.

Collapse
 
ntombizakhona profile image
Ntombizakhona Mabaso

I can't wait to read these books.

Collapse
 
arnoldbhebhe profile image
ArnoldB

Great list, thank you for sharing!

Collapse
 
rahulp3 profile image
Rahul P B

Thanks for sharing!

Collapse
 
rumuscug profile image
Rumusc

Good list here, thank you. the Atomic Habits book did well for me when synced with the “Compound Effect” by Darren Hardy.

Collapse
 
frosnerd profile image
Frank Rosner

I'll check it out, thanks!

Collapse
 
nageswarchedella profile image
Nageswar Chedella

Great list! Thanks for sharing 👍

Collapse
 
vulwsztyn profile image
Artur Mostowski

Quality post

Collapse
 
chill_27 profile image
MIT Chell

Awesome books.

Collapse
 
lovestaco profile image
Athreya aka Maneshwar

Read Takehiko Harada - Management Lessons from Taiichi Ohno_ What Every Leader Can Learn from the Man who Invented the Toyota Production System you may learn more deeper management skills.

Collapse
 
akuoko_konadu profile image
Konadu Akwasi Akuoko

Good stuff, thanks for sharing

Some comments may only be visible to logged-in visitors. Sign in to view all comments.