Bookshelf

Books I have read completely, or in part.

2024

The Hidden Girl and Other Stories by Ken Liu

Code is for Humans by Zohar Jackson

Grokking Simplicity: Taming Complex Software with Functional Thinking by Eric Normand

Super Thinking: The Big Book of Mental Models by Gabriel Weinberg and Lauren McCann

The Great Mental Models Volume 1: General Thinking Concepts by Shane Parrish and Rhiannon Beaubien

2023

Stuck? Diagrams Help by Abby Covert

Just Enough Software Architecture by George Fairbanks

Joy of Agility: How to Solve Problems and Succeed Sooner by Joshua Kerievsky

How Big Things Get Done by Bent Flyvbjerg and Dan Gardner

The Laws of Simplicity by John Maeda

99 Bottles of OOP: A Practical Guide to Object-Oriented Design by Sandi Metz and Katrina Owen

Software Engineering at Google: Lessons Learned from Programming Over Time by Titus Winters, Tom Manshreck, and Hyrum Wright

2022

Code Simplicity: The Fundamentals of Software by Max Kanat-Alexander

The Clean Coder by Robert C. Martin

Become an Effective Software Engineering Manager by James Stanier

Timeless Laws of Software Development by Jerry Fitzpatrick

Modern Software Engineering by David Farley

Software Architecture for Developers, Volume 2 by Simon Brown

Software Architecture for Developers, Volume 1 by Simon Brown

The Making of a Manager by Julie Zhuo

Content Inc. by Joe Pulizzi

2021

Career Superpowers: Succeeding on Purpose by James Whittaker

Clean Agile by Robert C. Martin

Effective Java, Third Edition by Joshua Bloch

The Little Bitcoin Book: Why Bitcoin Matters for your Freedom, Finances and Future by Bitcoin Collective

The Well-Grounded Rubyist, 3rd Edition by David A. Black and Joseph Leo III

The Millionaire Fastlane: Crack the Code to Wealth and Live Rich for a Lifetime by MJ DeMarco

The Psychology of Money by Morgan Housel

Computer Systems: A Programmer’s Perspective by Randal Bryant and David O’Hallaron

2020

Working Effectively with Legacy Code by Michael C. Feathers

The Book of Kindness by Om Swami

Designing Data-Intensive Applications by Martin Kleppmann

Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister

Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C. Martin

Python Testing with pytest by Brian Okken

2019

Web Scalability for Startup Engineers by Artur Ejsmont

Effective Python: 59 Specific Ways to Write Better Python by Brett Slatkin

Refactoring: Improving the Design of Existing Code, 2nd Edition by Martin Fowler

A Philosophy of Software Design by John Ousterhout

Explore It! Reduce Risk and Increase Confidence with Exploratory Testing by Elisabeth Hendrickson

2018

The Only Investment Guide You’ll Ever Need by Andrew Tobias

How Google Tests Software by James Whitaker, Jason Arbon and Jeff Carollo

Developer Testing: Building Quality into Software by Alexander Tarlinder

Problem Solving with Algorithms and Data Structures using Python by Brad Miller and David Ranum

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

2017

Neural Networks and Deep Learning by Michael Nielsen

Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville

2016

Introduction to Algorithms by Thomas Cormen et al.

Data Science from Scratch: First Principles with Python by Joel Grus

2015

Eloquent Javascript by Marijn Haverbeke

Introduction to C and Software Design by Tim Bailey

Where Good Ideas Come From by Steven Johnson

Modeling Software Behavior: A Craftsman’s Approach by Paul C. Jorgensen

Concepts of Programming Languages by Robert W. Sebesta

Programming Languages: Principles and Paradigms by Allen Tucker and Robert E. Noonan

2014

Zig Zag: The Surprising Path to Greater Creativity by Keith Sawyer

Android Programming: The Big Nerd Ranch Guide by Bill Phillips et al.

Algorithm Design Manual by Steven S. Skiena

The Creativity Formula: 50 Scientifically Proven Creativity Boosters for Work and Life by Amantha Imber

Building WordPress Themes from Scratch by Joe Casabona

Cognitive Science: An Introduction to the Science of the Mind by Jose Luiz Bermudez

Backlog

Understanding Distributed Systems by Robert Vitillo

Scalability Rules: 50 Principles for Scaling Web Sites by Martin L. Abbott and Michael T. Fisher

Patterns of Enterprise Application Architecture by Martin Fowler

Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans

Trustworthy Online Controlled Experiments by Ron Kohavi, Diane Tang, and Ya Xu

Learning Domain-Driven Design by Vlad Khononov

Software Estimation Without Guessing by George Dinwiddie

Agile Estimating and Planning by  Mike Cohn

User Stories Applied for Agile Software Development by Mike Cohn