Recommendations to read after having finished The Software Engineer's Guidebook.
Software engineering newsletters
- The Pragmatic Engineer – the weekly newsletter I write. Big Tech and startups, from the inside.
- TLDR Newsletter by Dan Ni. The most interesting stories in tech, science, and coding. A daily newsletter. Highly recommended.
- ByteByteGo Newsletter. Explaining complex systems with simple terms. Written by Alex Xu, author of The Systems Design Interview.
- Architecture Notes. Written by Apple engineering manager Mahdi Yusuf (formerly Senior Staff engineer at 1Password).
- The Pointer. A reading club for software developers, curated by Suraj Kapoor, fullstack engineer, product person and former VC. 10-15 links with a concise tl;dr; for each article.
- Programming Digest, curated by Jakub Chodounsky, CTO at Hatch. One email per week, 5 links of programming, big data, architecture, development processes and databases.
Recommended Books
While frameworks change quickly and languages evolve relatively speedily in software engineering, there are plenty of things that change much slower. Below are books that helped me grow into a better software engineer – and engineering lead – and I recommend them. Browse all of them here:
(Links marked with * are affiliate links that redirect to the right regional site. See below for details on why these links)
Software engineering
A Philosophy of Software Design by John Ousterhout. A concise book that challenged my thinking of what matters for software design.
Designing Data-Intensive Applications by Martin Kleppmann. If you want to understand distributed systems from the ground up: this book is what you want to read.
Understanding Distributed Systems by Roberto Vitillo. A practical walkthrough on concepts like ailure detection, replication, scalability, resiliency, and operating large systems.
Modern Software Engineering by Dave Farley. A practical guide on approaches in building quality software.
Working Effectively with Legacy Code by Michael Feathers. Sooner or later, every engineer needs to deal with legacy code, and this book offers solid guidance.
Software Engineering at Google by Titus Winters, Tom Manshreck & Hyrum Wright. While most companies don’t need the same approaches Google uses: it’s educational to know what they do, and why. Read it for free online, or
Engineering career
The First 90 Days by Michael D. Watkins. The first 3 months at a new company can make or break your next few years there. The best book I’ve found on efficient onboarding – even if it is not specific to software engineers.\
Building a Career in Software by Daniel Heller. Written by my former colleague at Uber: the opinionated and concise advice resonated with me.
The Staff Engineer's Path by Tanya Reilly. A deeepdive into the increasingly vague staff+ role that we also covered in this book – but not nearly in as much detail as Tanya does. Read an exerpt from the book here or
Staff Engineer by Will Larson. Another excellent deepdive into what the staff+ role looks like: with real-world stories from 14 staff+ engineers.
Switching jobs
Cracking the Coding Interview by Gayle Laakmann McDowell. A classic to prepare for the data structures and algorithms interviews. The author trains large and small tech companies on interview approaches – she also conducted this training while I was at Uber.
Systems Design Interview series by Alex Xu. Real-world cases studies to prepare for the systems design interview that senior and above engineers regularly need to clear at Big Tech and scaleups. Get it online; or read my review; or
Grokking Algorithms by Aditya Y. Bhargava. A good refresher for algorithms that you might use at some tech companies – and are commonly asked on Big Tech interviews.
Soft skills
On Writing Well by William Zinsser. Writing is an undervalued skill for software engineers. Simple and pragmatic suggestions to do this better.
Crucial Conversations by Kerry Patterson, Joseph Grenny, Ron McMillan, Al Switzler. A helpful resource to prepare for difficult and stressful career conversations.
Engineering management
At fast-growing companies that need to hire several engineering managers, it’s common for tech leads to have the option to move into a manager position. The manager role is different to the software engineer one, and this transition is outside the scope of this book. For advice on navigating the transition into manager, here are books I recommend:
Become an Effective Software Engineering Manager by James Stanier. A hands-on book for people transitoning to management, starting at a new company or looking to make more of an org-wide impact. Read my longer book review here, or:
An Elegant Puzzle: Systems of Engineering Management by Will Larson. A hands-on read on engineering management I've picked up. Apart from the book, the Recommended Papers section in the appendix list excellent engineering reads.
The Making of a Manager by Julie Zhuo. A guide in going from being a first-time manager to becoming a senior manager in an organization. A refreshingly honest tone, and all the experiences and stories come directly from Julie Zhuo, who worked her way from individual contributor to VP of Design at Facebook.
The Manager's Path by Camille Fournier. A concise guide for managers, from tech lead, through line managers, managers of managers, all the way to CTO.
* a note on affiliate links
I removed all affiliate links from The Pragmatic Engineer Blog and Newsletter. So why are there affiliate ones on this page? Because:
- For my own book: it's only sensible to reduce Amazon's commission. I self-publish and sell The Software Engineer's Guidebook via Amazon. Amazon takes a 40% cut from the book's list price. By becoming an affiliate for my own book, I earn 4% of the purchase price made via links: which means Amazon's commission drops to around 36%.
- Affiliate links are the easiest way to auto-direct to the regional Amazon store. Amazon stores are local: so if you are, for example, based in India: directing to Amazon.com is not helpful, but redirecting to Amazon.in is helpful for purchasing. The easiest way to do this redirect automatically is using a service that redirects using affiliate links called Geniuslink: and so this is what I do, for convenience on this site. Note that the links not marked with a star (*) are not affiliates: they point to the publisher, or – if Amazon is the publisher – then to Amazon.com.
- Affiliates help get neat book recommendations – for me! Amazon offers a neat summary page on what other books customers buying. This data is anonymized, but it gives me ideas on what other books to read (and, perhaps, add to this list later on!)
This is the only page on the blog with affiliate links. If you would like to avoid using affiliates, please use the links not marked with a star, which links point to the publisher's page for books that have such a page.