Podcasts and Books for Software Engineers
Continuous learning is part of the job. Here are the podcasts and books that have had the most impact on my growth as a software engineer.
Books
Fundamentals
“Designing Data-Intensive Applications” by Martin Kleppmann — The single best book on distributed systems, databases, and data processing. If you read one technical book this year, make it this one.
“Clean Code” by Robert C. Martin — Controversial in some circles, but the core message — write readable, maintainable code — is timeless. Take the specific rules with a grain of salt and absorb the principles.
“The Pragmatic Programmer” by David Thomas and Andrew Hunt — Covers everything from debugging to estimation to career management. Written as a series of short, practical tips. Great for early-career developers.
“Refactoring” by Martin Fowler — A catalog of code transformations with before/after examples. Essential reading for anyone who maintains existing code (which is everyone).
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler
Architecture and Design
“Domain-Driven Design” by Eric Evans — Dense but rewarding. The concepts of bounded contexts, aggregates, and ubiquitous language are foundational for designing complex systems.
“Building Microservices” by Sam Newman — Practical, balanced coverage of microservices architecture. Covers when to use them, how to split services, and the operational challenges.
“A Philosophy of Software Design” by John Ousterhout — Short and opinionated. Argues that the most important thing in software design is minimizing complexity.
Career and Thinking
“Staff Engineer” by Will Larson — For engineers considering the staff+ track. Covers leadership, influence, and the different archetypes of staff engineers.
“Thinking in Systems” by Donella Meadows — Not a software book, but essential for understanding how complex systems behave. Applicable to software architecture, organizations, and product design.
“The Manager’s Path” by Camille Fournier — Even if you don’t want to be a manager, understanding what your manager does makes you a better collaborator and more effective IC.
Podcasts
General Software Engineering
- Software Engineering Radio — Deep technical interviews with practitioners and authors. Consistently high quality.
- The Changelog — Open source, software development, and the people behind it. Conversational and well-produced.
- Syntax — Web development topics, beginner-friendly, well-structured episodes.
Language-Specific
- Go Time — All things Go. Fun, informative, and the hosts have genuine chemistry.
- Talk Python to Me — Python ecosystem, libraries, and projects.
- JavaScript Jabber — JavaScript and web development panel discussion.
Architecture and Infrastructure
- Software Engineering Daily — Daily episodes on technical topics. Deep dives into specific technologies and companies.
- Kubernetes Podcast from Google — Weekly Kubernetes and cloud-native news and interviews.
Career and Culture
- Soft Skills Engineering — Short episodes answering listener questions about the human side of software engineering. Surprisingly insightful.
- Developer Tea — Short episodes (10-15 minutes) on career growth, productivity, and engineering thinking.
How to Actually Learn from These
Reading and listening passively is easy. Retaining and applying is harder. A few habits that help:
- Take notes while reading. Even just writing “this concept applies to X at work” makes the knowledge stick.
- Discuss with peers. A book club or even a casual Slack channel discussion forces you to articulate what you learned.
- Apply immediately. After reading about a refactoring technique, find a place to use it in your codebase this week.
- Don’t finish books you don’t like. Life is too short for books that aren’t clicking. Move on to the next one.