Kenneth Au

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

  1. “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.

  2. “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.

  3. “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.

  4. “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

  1. “Domain-Driven Design” by Eric Evans — Dense but rewarding. The concepts of bounded contexts, aggregates, and ubiquitous language are foundational for designing complex systems.

  2. “Building Microservices” by Sam Newman — Practical, balanced coverage of microservices architecture. Covers when to use them, how to split services, and the operational challenges.

  3. “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

  1. “Staff Engineer” by Will Larson — For engineers considering the staff+ track. Covers leadership, influence, and the different archetypes of staff engineers.

  2. “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.

  3. “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.