A Review of Michael Kennedy’s book, “Talk Python in Production”
I recently had the opportunity to read the book Talk Python in Production by Michael Kennedy. He is the host of the “Talk Python To Me,” and cohost of the “Python Bytes” podcast. The site he built for the podcasts also hosts his online training courses.
This review reflects my thoughts on the book’s content—how it aligns with my own experience as a working developer, and how I expect to use its ideas in my day-to-day work.
By way of background, I’m a backend-focused software developer building Python-based APIs on AWS. I occasionally do frontend work as well, currently using SvelteKit. I’m also the author of The Well-Grounded Python Developer from Manning Publications.
Cutting To The Chase
Much of the book presents ideas and material to support Michael’s coining of a new technology term, “Stack Native.” This is based on his own experience creating the Talk Python To Me sites and services, and their evolution over time. In many ways the choices he made and the path followed echoes The Zen of Python.
Simple is better than complex
Complex is better than complicated
Rather than diving head long into what is referred to as “Cloud Native,” and adopting the many services offered by the big cloud providers, Michael has taken the practical path of recognizing the application stacks he needs to realize his goals, and taking the simpler steps to reach them.
He also makes a compelling point: very few of us are Google or Facebook, serving billions of requests per day and needing essentially 100% uptime. This changes the conversation presented by Cloud Native adherents, and the venders supplying it.
Don’t Get Me Wrong
I’m not saying I want to go back to a world of on-premisis hardware, networking, power, cooling, no way! That was fun at the time, but that fun has worn out it’s welcome! I absolutely want the applications I’m working to be hosted in modern data centers with all the bells, whistles, reliability and redundancy that brings with it.
What I do have questions about is buying into all the services cloud providers have and charge for. I’ve built systems that use serverless, managed queues, managed databases, routing, API Gateways, step functions, and more. All of that has been interesting and educational–but I sometimes question if I’ve traded the manageable complexity of a server with a set of open-source services, for the sprawling, disparte complexity of infrastructure as code of Cloud Native solutions.
The Core Idea: Simplicity Wins
The central thesis of the book is refreshing: you probably don’t need the complexity of a massive cloud architecture. Michael argues for what he calls the “One Big Server” approach. Instead of managing a fleet of tiny, underpowered micro-instances or getting locked into expensive Platform-as-a-Service (PaaS) offerings, you get one robust dedicated server (or a large VPS) and run everything there.
This resonated with me, as I’ve been part of projects awash in the complexity of AWS services—S3, Lambda, RDS, VPCs—when a single Linux box could have handled the load without breaking a sweat.
What is meant by this is that a service can scale to almost the full potential of a large server because the collection of services hosted on the box will rarely contend with each other for CPU, memory, database access, etc.
This is opposed to having each service running on it’s own small linux box in isolation. In this case the service can only scale to the resource limits of the one small linux box.
Docker is the Key
Of course, dumping everything onto one server can be a mess if you’re not careful. That’s where Docker comes in. The book details how to use Docker and Docker Compose to isolate applications.
- Isolation: Each app thinks it has the machine to itself.
- Portability: You can move that “One Big Server” from DigitalOcean to Hetzner (a move the author recommends for cost savings) without rewriting your code.
- Simplicity: No Kubernetes. Just Docker Compose.
I appreciate this distinction. Kubernetes is amazing technology, but for a small team or a solo developer, it’s often overkill. And more than likely dependent on having access to a DevOps team. It adds a layer of operational complexity that takes time away from building the actual software.
Practicality Over Hype
Michael breaks down the costs clearly. He shows how he runs the entire Talk Python landscape—podcasts, courses, mobile APIs—for roughly $100/month. That’s impressive. It challenges the default assumption that “going to the cloud” means “paying a lot of money for infinite scalability we might never need.”
Beyond costs in terms of money, he presents the work he took on, and what it meant to bring it to reality at each step of his journey. This is accompanied by detailed examples of what he built, how he built it, and why. I found this particularly useful as I fully intend to capitalize on what he’s presented in my own work.
I may not be in a position to fully adopt “Stack Native,” but it’s principles will definitely inform the choices I make going forward as a software developer.
Who Should Read This?
If you are a Python developer who wants to get your work out into the world without needing a PhD in AWS, this book is for you. It’s a practical, opinionated guide that cuts through the hype.
Closing Thoughts
Not everything in the book will be valuable in every situation. But, I think you’ll find the practical approach taken and presented invaluable to your own goals.
Highly recommended.
