My FavoriteBooks

A curated collection of books that have significantly influenced my personal and professional development across different genres and topics.

Software Engineering

These are the books that completely changed how I think about writing code and building software. They're not just technical—they're about the mindset behind great development.

Marty Cagan
Inspired: How to Create Tech Products Customers Love
12 Dec 2017
Inspired: How to Create Tech Products Customers Love

by

Marty Cagan

What Stayed With Me
  • What really hit me was that most teams fail not because they build badly, but because they build the wrong thing.
  • The book changed how I see product discovery — it’s basically about learning fast and killing bad ideas early.
  • I stopped thinking of product managers as feature planners; they’re there to fully own the problem.
  • It made me realize how much trust and autonomy inside a team affects the final product.
  • After reading it, I can instantly tell when a company is just shipping features instead of solving real problems.
Eric Evans
Domain-Driven Design: Tackling Complexity in the Heart of Software
22 Aug 2003
Domain-Driven Design: Tackling Complexity in the Heart of Software

by

Eric Evans

What Stayed With Me
  • This book made me realize most complexity comes from misunderstanding the business, not from the code itself.
  • Once you really align your code with how the business thinks, everything starts to feel less messy.
  • The idea of a shared language sounds simple, but it completely changes how teams communicate and design.
  • Bounded contexts finally explained why big systems feel fine at first and then slowly turn into a nightmare.
  • It taught me that you don’t eliminate complexity, you accept it and design around the most important parts.
John Ferguson Smart
BDD in Action: Behavior-Driven Development for the Whole Software Lifecycle
29 Sep 2014
BDD in Action: Behavior-Driven Development for the Whole Software Lifecycle

by

John Ferguson Smart

What Stayed With Me
  • What surprised me is that BDD is way more about communication than testing.
  • It really clicked that good scenarios come from real business examples, not technical thinking.
  • The book helped me see tests as living documentation instead of something you write at the end.
  • BDD only works when developers, testers, and business people actually collaborate.
  • It made me more careful about jumping into code before everyone agrees on behavior.
Dave Hendricksen
12 Essential Skills for Software Architects
20 Sep 2011
12 Essential Skills for Software Architects

by

Dave Hendricksen

What Stayed With Me
  • This book made it clear that architecture is mostly about making good trade-offs, not finding perfect solutions.
  • I realized how much of an architect’s job is communication and influencing, not just technical design.
  • It helped me see why strong architects care deeply about business goals and constraints.
  • The book changed how I think about technical decisions. Context matters more than best practices.
  • After reading it, I stopped seeing architects as ‘senior coders’ and more as technical leaders.
Vaughn Vernon
Implementing Domain-Driven Design
06 Feb 2013
Implementing Domain-Driven Design

by

Vaughn Vernon

What Stayed With Me
  • This is the book that finally showed me how DDD ideas translate into real code.
  • It showed me how to decide where boundaries belong by using business rules, not just technical layers.
  • Seeing real examples made aggregates and domain events feel practical instead of theoretical.
  • The book made me more disciplined about keeping domain logic clean and protected.
  • After reading it, I felt much more confident applying DDD in real systems, not just talking about it.
Robert C. Martin
Clean Code: A Handbook of Agile Software Craftsmanship
01 Aug 2008
Clean Code: A Handbook of Agile Software Craftsmanship

by

Robert C. Martin

What Stayed With Me
  • This book changed how I think about readability. Writing code means taking responsibility for future readers.
  • I learned that good naming is not a nice-to-have. Clear names reduce the need for comments and misunderstandings.
  • Writing small, focused functions became a habit. When a function does one thing well, the system is easier to understand.
  • Tests stopped feeling optional. Without tests, refactoring safely and confidently is almost impossible.
  • Refactoring became part of daily work instead of something postponed or avoided.
Martin Fowler
Refactoring: Improving the Design of Existing Code
19 Nov 2018
Refactoring: Improving the Design of Existing Code

by

Martin Fowler

What Stayed With Me
  • This book taught me that refactoring isn’t a big risky rewrite, it’s a series of small, safe improvements.
  • I became much better at spotting code smells and understanding why they’re dangerous.
  • It made tests feel essential for safely changing and improving existing code over time.
  • I learned that good design usually comes from continuous improvement, not upfront perfection.
  • After reading it, I felt confident touching old code without constantly fearing breaking things.
Kent Beck
Test Driven Development: By Example
08 Nov 2002
Test Driven Development: By Example

by

Kent Beck

What Stayed With Me
  • It made me think tests first instead of writing tests after the fact. The test clarified behavior before implementation.
  • The Red-Green-Refactor cycle became natural: write a failing test, make it pass quickly, then clean up the code.
  • TDD pushed me to solve problems in very small, manageable steps instead of guessing at big solutions.
  • It gave me confidence to refactor old code because the tests caught regressions immediately.
  • Seeing TDD in real examples made it feel like a practical way of working, not just a theory.
Gerard Meszaros
xUnit Test Patterns: Refactoring Test Code
18 May 2007
xUnit Test Patterns: Refactoring Test Code

by

Gerard Meszaros

What Stayed With Me
  • This book made me realize that poorly designed tests create hidden technical debt and destroy trust in the test suite.
  • I understood that tests are code too, and deserve clear structure, good naming, and patterns just like production code.
  • The idea of test smells gave me clear language to explain what was wrong and how to fix it.
  • I learned that patterns like test fixtures, test data builders, and test doubles make tests expressive and less brittle.
  • After reading it, I started refactoring test code regularly instead of letting messy tests accumulate and block progress.
Scott Millett & Nick Tune
Patterns, Principles, and Practices of Domain-Driven Design
20 Mar 2015
Patterns, Principles, and Practices of Domain-Driven Design

by

Scott Millett & Nick Tune

What Stayed With Me
  • This book helped me connect DDD concepts to real architectural choices, not just code structure.
  • It made bounded contexts feel practical by showing how they shape architectural and organizational boundaries.
  • I finally understood how messaging and domain events connect DDD patterns into a coherent system design.
  • The book changed how I think about modeling over time, not just at the start of a project.
  • After reading it, I felt more confident mixing DDD with real-world constraints and trade-offs.
Erich Gamma & others
Design Patterns: Elements of Reusable Object-Oriented Software
31 Oct 1994
Design Patterns: Elements of Reusable Object-Oriented Software

by

Erich Gamma & others

What Stayed With Me
  • Oh, the Gang of Four book. At first it felt dense and abstract, but over time I realized it was giving names to problems I had already faced in real code.
  • This book taught me that design patterns are not recipes to apply blindly, but shared vocabulary for discussing design decisions.
  • It helped me recognize when flexibility is needed and when simplicity is the better choice.
  • After reading it, I saw how patterns encode proven solutions to common design problems, so I wasn’t inventing the same solutions over and over.
Grady Booch
Object-Oriented Analysis and Design with Applications
20 Nov 2007
Object-Oriented Analysis and Design with Applications

by

Grady Booch

What Stayed With Me
  • This book helped me understand how to break complex problems into clear, well-defined objects that reflect the real domain.
  • I learned that good object-oriented design depends on core ideas like abstraction, encapsulation, and clear responsibilities.
  • Using diagrams and models made complex designs easier to think about and explain to others.
  • After reading it, I treated analysis and design as continuous activities that evolve with the system rather than a one-time phase at the beginning.

Literary Fiction

These stories blew my mind and made me think about life in ways I never expected. They're not light reads, but they're the kind that stick with you.

Sadegh Hedayat
The Blind Owl
01 Jan 1937
The Blind Owl

by

Sadegh Hedayat

Hermann Hesse
Steppenwolf
01 Jan 1927
Steppenwolf

by

Hermann Hesse

E. L. Voynich
The Gadfly
01 Jan 1897
The Gadfly

by

E. L. Voynich

Paulo Coelho
The Alchemist
01 Jan 1988
The Alchemist

by

Paulo Coelho

George Orwell
1984
08 Jun 1949
1984

by

George Orwell

Hugh Howey
Wool
12 Mar 2013
Wool

by

Hugh Howey

J. D. Salinger
The Catcher in the Rye
16 Jul 1951
The Catcher in the Rye

by

J. D. Salinger

Irvin D. Yalom
When Nietzsche Wept
01 Jan 1992
When Nietzsche Wept

by

Irvin D. Yalom


Personal Growth

These books helped me level up as a person. They're practical, honest, and full of insights that actually make a difference in how you live and work.

Nassim Nicholas Taleb
Skin in the Game: Hidden Asymmetries in Daily Life
27 Feb 2018
Skin in the Game: Hidden Asymmetries in Daily Life

by

Nassim Nicholas Taleb

What Stayed With Me
  • This book made me realize that people who make decisions should share the consequences of those decisions, otherwise incentives are misaligned.
  • I learned to spot situations where advice comes from people who don’t actually bear the risk, and why that’s dangerous.
  • It explained how unfair risk creates poor outcomes.
  • The idea of symmetry changed how I see accountability in leadership, finance, and policy decisions.
  • After reading it, I became much more skeptical of experts who benefit from actions that harm others.
Nassim Nicholas Taleb
Antifragile: Things That Gain from Disorder
27 Nov 2012
Antifragile: Things That Gain from Disorder

by

Nassim Nicholas Taleb

What Stayed With Me
  • This book made me stop trying to predict everything and focus on building systems that work under uncertainty.
  • I realized the goal is not to avoid risk, but to benefit when volatility inevitably appears.
  • It changed how I see failure. Small failures can strengthen a system instead of damaging it.
  • I became more skeptical of systems that only survive in stable, ideal conditions.
  • After reading it, I placed much more value on simplicity, optionality, and margin of safety.
Nick Trenton
Calm Your Thoughts: Stop Overthinking, Stop Stressing, Stop Spiraling, and Start Living
19 Jan 2021
Calm Your Thoughts: Stop Overthinking, Stop Stressing, Stop Spiraling, and Start Living

by

Nick Trenton

What Stayed With Me
  • This book helped me notice when my thoughts start looping instead of moving forward.
  • I learned how overthinking feels productive but usually keeps me stuck in the same worries.
  • It showed simple ways to interrupt spirals before they escalate into stress or anxiety.
  • The practical techniques made calming my mind something I could actually do in the moment.
  • After reading it, I became more aware of how my internal dialogue shapes my mood and behavior.
Jonathan Haidt
The Happiness Hypothesis: Finding Modern Truth in Ancient Wisdom
24 Jan 2006
The Happiness Hypothesis: Finding Modern Truth in Ancient Wisdom

by

Jonathan Haidt

What Stayed With Me
  • The best thing I learned is that daily routines, relationships, and surroundings matter more for happiness than willpower or positive thinking.
  • The rider and elephant metaphor finally explained why knowing the right thing does not mean I will actually do it.
  • It taught me that progress and meaning matters more than pleasure.
  • It helped me understand that emotions usually drive behavior, and reasoning often comes afterward to justify it.
  • After reading it, I became more patient with my own flaws instead of fighting them aggressively.
Julia Galef
The Scout Mindset: Why Some People See Things Clearly and Others Don’t
26 Oct 2021
The Scout Mindset: Why Some People See Things Clearly and Others Don’t

by

Julia Galef

What Stayed With Me
  • This book clearly explains the difference between defending beliefs and genuinely seeking the truth.
  • I learned that good judgment depends more on emotional habits than on intelligence or knowledge.
  • It showed how people defend beliefs while feeling rational.
  • Changing your mind in response to evidence is presented as a strength, not a weakness.
  • After reading it, I focused more on accurately understanding opposing views before criticizing them, which improved how I handle disagreements.
Darren Hardy
The Compound Effect
26 Oct 2010
The Compound Effect

by

Darren Hardy

What Stayed With Me
  • This book made me realize how small daily choices quietly shape long-term results.
  • I learned that consistency matters more than intensity when it comes to real progress.
  • It showed how habits compound over time, whether they are good or bad.
  • Tracking simple behaviors made my actions more intentional and less automatic.
  • After reading it, I focused less on motivation and more on building reliable routines.
Cal Newport
Deep Work: Rules for Focused Success in a Distracted World
05 Jan 2016
Deep Work: Rules for Focused Success in a Distracted World

by

Cal Newport

What Stayed With Me
  • This book made me realize how rare and valuable uninterrupted focus has become.
  • I learned that deep work is a skill that must be trained deliberately, not something that happens by chance.
  • It showed me how constant context switching quietly destroys the quality of thinking and output.
  • Scheduling time for deep work felt restrictive at first, but quickly became freeing.
  • After reading it, I started protecting focus as seriously as any other professional responsibility.
James Clear
Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones
16 Oct 2018
Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones

by

James Clear

What Stayed With Me
  • This book made me realize that habits are shaped more by systems and environment than by motivation.
  • I learned that focusing on small, consistent improvements is far more effective than chasing big changes.
  • The idea of identity-based habits changed how I approach behavior. I focused on who I want to become, not just what I want to achieve.
  • Changing the environment makes habits easier to keep.
  • After reading it, I cared more about consistency and process than short-term results.
Daniel Kahneman
Thinking, Fast and Slow
25 Oct 2011
Thinking, Fast and Slow

by

Daniel Kahneman

What Stayed With Me
  • This book made me aware of how often I rely on fast, intuitive thinking without realizing it.
  • I learned that confidence in a judgment does not mean it is accurate.
  • The distinction between fast and slow thinking helped me pause before important decisions.
  • It showed how cognitive biases quietly shape choices in finance, work, and everyday life.
  • After reading it, I try to slow down my thinking when accuracy matters more than speed.
Stephen R. Covey
The Seven Habits of Highly Effective People
15 Aug 1989
The Seven Habits of Highly Effective People

by

Stephen R. Covey

What Stayed With Me
  • This book shifted my focus from quick techniques to long-term principles that guide decisions.
  • I learned that taking responsibility for my choices is the foundation of real effectiveness.
  • Thinking in terms of important versus urgent changed how I prioritize my time and energy.
  • I realized that listening deeply often matters more than trying to be understood.
  • After reading it, I cared more about aligning actions with values than chasing short-term results.