The Real Python Podcast
A weekly Python podcast hosted by Christopher Bailey with interviews, coding tips, and conversation with guests from the Python community. The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
Python Pitfalls: Common Mistakes and How to Avoid Them
What are common mistakes that Python beginners make, and how do you avoid them? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We dig into an article about common pitfalls and mistakes new Python developers make. Some of the mistakes are due to Python doing exactly what you asked it to do. We also talk about Real Python resources for getting started with the language and building your development environment.
We also share other articles and projects from the Python community, including recent releases, a...
Codemoo: Demonstrating How Coding Agents Work
How do you assemble the core pieces of a coding agent? How are developers defining projects through conversation and introspection? This week on the show, Geir Arne Hjelle returns to talk about his recent project to demonstrate how coding agents work under the hood.
Geir Arne was my first guest on this program and has returned often over the years. Heâs been exploring how coding agents work and has built a demonstration tool to explain them.
We also discuss how he is using LLM tools in his work. We talk about moving beyond Spec-Driven De...
Python 3.15: Exploring the New Features
Python 3.15 is (almost*) here! Christopher Trudeau and Bartosz ZaczyĹski return to discuss the new version. Bartosz coordinated the series of preview articles with members of the Real Python team and wrote the showcase tutorial, âPython 3.15: Cool New Features for You to Try.â Christopherâs video course âWhatâs New in Python 3.15â covers the topics from the article and shows the new features in action.
Christopher and Bartosz dug into the release to create code examples of the new features for the tutorial and course. We cover the new built-in types, unpacking in comprehensions, and developer experience enhancements...
Navigating AI in Open Source: Insights From Wagtail
How should you manage AI contributions to an open-source project? How do you measure the impact of using AI tools for development, and what generative features do end users want from a content management system? This week on the show, we speak with Thibaud Colas and Meagen Voss from Wagtail about the complex considerations software organizations are currently facing.
Meagen is the Wagtail community manager, and Thibaud is a member of the core team. We discuss the impact of AI on a popular open-source project. We reference multiple articles theyâve written about managing these challenges.
...
Django Developers Survey Results & Reproducible Python Builds
What are the latest trends uncovered in the 2026 Django Developers Survey? How are Django users employing LLMs in their development process? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss a summary by Will Vincent about this yearâs Django Developers Survey. The survey draws on responses from nearly 3,500 developers across more than 40 countries. It provides a look at how developers are adapting to AI workflows and which tools theyâre embracing.
We dig into a post from Brett Cannon about reproducible builds in Pyt...
Performance Engineering: Profiling and Making Apps Fast by Default
How do you plan for the performance of your Python applications? What does a performance budget entail, and where should you spend your resources? This week on the show, we speak with Den Odell about his new book âFast by Default: Practical Performance Engineering.â
Den has 25 years of experience in building web systems for companies with hundreds of millions of users. Working on public-facing tools has honed his skills in understanding where performance is vital and in guiding decisions based on data from actual users.
Den shares details of his performance framework that works across any...
Exploring Complex Systems & Maintainable Data Science Pipelines
What are the key characteristics of complex systems, and what are practical patterns for tackling complex coding problems? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
Christopher covers an article about working on complex systems. The piece explores the distinction between complicated and complex problems. Each requires a fundamentally different approach to solve.
We dig into a couple of tutorials about creating repeatable data science pipelines. One covers validating DataFrames and tables with the pointblank library to build into a continuous integration workflow. The ot...
Navigating Silent Failures in AI: Strategies for Effective Oversight
Why do AI systems silently fail? How can you set up a system that produces results while also reviewing and validating the work? This week on the show, Calvin Hendryx-Parker returns to discuss his recent talk âOrchestrate Agentic AI: Context, Checklists, and No-Miss Reviews.â
Calvin describes how silent failures can occur when handing a large document to an LLM for parsing. He describes it as the tragedy of context, where the LLM is confident, but you have no idea what it didnât read. We discuss issues with file formats, dropped attachments, and silent truncation.
Calvin...
Improving NumPy Performance on Free-Threaded Python
What bottlenecks were preventing NumPy from scaling on free-threaded Python? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
Christopher shares a recent article on the work done in NumPy to make multi-threaded workloads scale on the free-threaded build of CPython. It covers how removing the Global Interpreter Lock (GIL) is not enough on its own and how profiling revealed hidden bottlenecks in NumPy and CPython.
We also share other articles and projects from the Python community, including recent releases, a pair of announcements from Py...
Programmatically Developing LLM Prompts With DSPy
How can you move from manually writing prompts for an LLM application toward defining them programmatically? This week on the show, Brett Kennedy returns to discuss his new book âBuilding LLM Applications with DSPy.â
With large language models becoming embedded in production software, manual prompt engineering becomes brittle, time-consuming, and difficult to maintain. Brett shares how DSPy replaces manually writing and adjusting prompts with structured prompt programming.
We dig into how DSPy uses declarative signatures to define inputs and outputs. We also discuss how developers programmatically compile, tune, and optimize prompts for specific LLM-based tasks with...
Should You Understand Your Entire Python Codebase?
Should you understand the entirety of your codebase? How familiar are you with Pythonâs built-in functions? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss a recent article by Sean Goedecke titled âIn Defense of Not Understanding Your Codebase.â We dig into the differences in the scale of software projects and the factors that can obscure understanding of an entire codebase. We cover how opinions and practices people often argue for are based on the development practices from decades ago.
Christopher shares his rece...
Configuring a Versatile LLM Harness & Scraping the Web With Scrapy
Which is more important, the model or the âharnessâ around an LLM? What are ways to assemble an efficient agentic developer workflow? This week on the show, Ayan Pahwa joins us to discuss harnessing, web scraping, and self-hosting Python applications.
Ayan is a developer advocate at Zyte and an experienced project builder. We discuss a recent article he wrote about creating an extension for the web scraping tool Scrapy. He also digs into his self-hosting setup for Python applications and tools.
Our discussion extends to the complexities of developing effective harnesses. Ayan shares his setup and...
Free-Threaded Python's History & uv in Production
How many attempts have been made to remove Pythonâs Global Interpreter Lock (GIL)? How do they compare to the current approach? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
Christopher shares a recent article about Thomas Woutersâ talk at PyCon US 2026. The talk, titled âFree-threaded Python: past, present, and future,â covers the efforts to remove the GIL starting in 1996. He explains that threads are complex, but they allow multiple tasks to run concurrently within a single process and its address space.
The GIL is how CPy...
Constructing and Judging Modern Agentic Workflows
How can you improve your LLM agent systems through specification enrichment? What are the advantages of having an LLM act as a judge within an agent system? This week on the show, Senior IEEE Member and Quality Engineer Suneet Malhotra joins us to discuss building and evaluating agentic architecture.
Suneet Malhotra is an independent practitioner-researcher with 18 years of experience in Quality Engineering (QE) and test automation for consumer-scale platforms. He discusses building specification-enrichment loops, monitoring performance, and using Cohenâs kappa to measure agreement between LLM judgments.
Suneet is currently publishing multiple papers that are un...
Running Python Locally in a Sandbox
How do you avoid the risk of running a Python application locally that could be malicious, break your code, or leak private data? How can you create a sandboxed local environment using WASM and MicroPython? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We cover a recent article by previous guest Simon Willison titled âRunning Python code in a sandbox with MicroPython and WASM.â Simon has been experimenting for years on how to run Python code in a sandbox to reduce the risk of trying out new so...
Maintaining Your Python Developer Instincts While Using LLM Tools
Do you feel like your Python skills are atrophying after using LLM coding tools? How do you add the right kind of friction into your coding routine to keep your developer instincts sharp? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss a recent article by previous guest Bob Belderbos about developers keeping their instincts when AI is writing the code. He stresses the importance of the right kind of friction for maintaining skills and scheduling a deliberate coding practice routine.
We also sh...
EuroPython 2026: Celebrating 25 Years
Whatâs happening at EuroPython 2026? The conference celebrates its 25th anniversary this year in KrakĂłw, Poland. This week on the show, organizers Mia BajiÄ and Daria Linhart Grudzien join me to discuss this yearâs conference.
Mia serves as the Vice Chair of the EuroPython Society, and Daria leads the EuroPython communications team. We dig into the details of the conference, including the wide variety of tracks, the reasoning for selecting the location, and the additional activities surrounding the event.
We talk about volunteering, organizing, and continuing support for conferences. Mia and Daria also share...
Reducing the Size of Python Docker Containers
How can you easily reduce the size of a Python Docker container? What are the exceptions you should catch in your code? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We cover a tutorial by Khuyen Tran at CodeCut about shrinking the size of a Python Docker container. The piece explores SlimToolKit, which analyzes a container at runtime, identifies what files are used, and then builds a minimal image with only those dependencies.
We dig into a recent piece by Trey Hunner about Python ex...
Improving Python Through PEPs and Protocols
Have you ever been confused by the naming of modules youâre importing from a package? Is there a standard way to organize and name your Python virtual environments? This week on the show, Brett Cannon returns to discuss the Python Enhancement Proposals (PEPs) heâs been working on recently.
We start with PEP 794, which extends the metadata fields for Python packages to specify the import names a project provides. The metadata will help developers identify the correct project to install when they know the import name or the importable module names a project provides once installed.
<...Managing Polars Schema Issues & Profiling GitHub Users
How can you avoid schema problems in your Polars data pipeline when adding new columns? How can you quickly examine a GitHub userâs profile to decide how much to invest in their contributions? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
Christopher shares a recent article about handling schema issues in Python Polars. The piece covers ways that a schema change can break your data pipeline. It provides strategies to avoid and resolve issues.
We cover a recent project from previous guest Eric Matt...
Agentic Architecture: Why Files Aren't Always Enough
What are the limitations of using a file-based agent workflow? Why do massive context windows tend to collapse? This week on the show, Mikiko Bazeley from MongoDB joins us to discuss agentic architecture and context engineering.
Mikiko is an applied AI engineer. She helps developers and organizations build AI and ML applications using MongoDB. We dig into the debate of files versus a database. What are some of the limitations of building an agent with just a folder of files?
We explore the surprising limitations of massive context windows and strategies for fixing them. Mikiko...
Declarative Charts in Python & Discerning Iterators vs Iterables
What if you could build charts in Python by describing what your data means, instead of scripting every visual detail? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We cover a recent Real Python article about the data visualization library Altair. Most tools require you to write detailed boilerplate code to set up the axis and figure. Altair follows a declarative approach where you specify which columns go to which axis, the type of chart or plot, and what should be interactive.
We also sh...
Agentic Data Science Pair Programming With marimo pair
How do you add agent skills to your data science workflow? How can a coding agent assist with data wrangling and research? This week on the show, Trevor Manz from marimo joins us to discuss marimo pair.
Trevor is a founding engineer at marimo, where heâs been working on integrating LLM tools with marimo. We discuss the balancing act of building a skill and determining how to give an agent access to all the variables in a notebook. He shares how they built a specialized reactive REPL that eliminates hidden state and allows the agent to co...
Becoming a Better Python Developer Through Learning Rust
How can learning Rust help make you a better Python Developer? How do techniques required by a compiled language translate to improving your Python code? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss a recent article by Bob Belderbos titled âLearning Rust Made Me a Better Python Developer.â Bob has been on a journey learning to program in Rust, which has made him rethink how heâs been writing Python. The compiler forced him to confront things heâd been ignoring.
We also share...
Reassessing the LLM Landscape & Summoning Ghosts
What are the current techniques being employed to improve the performance of LLM-based systems? How is the industry shifting from post-training towards context engineering and multi-agent orchestration? This week on the show, Jodie Burchell, data scientist and Python Advocacy Team Lead at JetBrains, returns to discuss the current AI coding landscape.
In our last conversation, Jodie covered how LLMs were approaching the limits of scaling laws. This time, we recap last yearâs big focus on reasoning models and a post-training method called âreinforcement learning from verifiable rewardsâ (RLVR). We also cover test-time compute, where models spend more t...
Advice on Managing Projects & Making Python Classes Friendly
What goes into managing a major project? What techniques can you employ for a project thatâs in crisis? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss an article by Ben Kuhn titled, âHow Iâve Run Major Projects.â We dig into the skills required for project management, and provide advice for when projects fall into crisis. We cover how the fieldâs terminology has been updated. However, the time investment, sober communication, and planning still remain at the core of successful projects.
We also sh...
Limitations in Human and Automated Code Review
With the mountains of Python code that itâs possible to generate now, howâs your code review going? What are the limitations of human review, and where does machine review excel? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss a recent piece from Glyph titled, âWhat Is Code Review For?â We dig into the limitations of human review and where software tools like linters and formatters can help you. We cover the challenges developers and open-source maintainers face with the rise of LLM-generated code and p...
Automate Exploratory Data Analysis & Invent Python Comprehensions
How do you quickly get an understanding of whatâs inside a new set of data? How can you share an exploratory data analysis with your team? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We discuss a recent Real Python tutorial about YData Profiling. This library lets you quickly generate an exploratory data analysis (EDA) report with a few lines of code. The report provides column-level analysis, visualizations, and summary statistics that can be exported to HTML to share with others.
We cover an a...
Crafting and Editing In-Depth Tutorials at Real Python
What goes into creating the tutorials you read at Real Python? What are the steps in the editorial process, and who are the people behind the scenes? This week on the show, Real Python team members Martin Breuss, Brenda Weleschuk, and Philipp Acsany join us to discuss topic curation, review stages, and quality assurance.
We start by sharing the multiple roles our panel of guests perform across the editorial process. They describe the phases a tutorial passes through, including layers of reviews, from technical accuracy to educational effectiveness. We also discuss our editorial independence, external authors, and...
Overcoming Testing Obstacles With Python's Mock Object Library
Do you have complex logic and unpredictable dependencies that make it hard to write reliable tests? How can you use Pythonâs mock object library to improve your tests? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
Christopher shares details about his recent Real Python video course, âImproving Your Tests With the Python Mock Object Library.â He describes how mocking in Python with unittest.mock allows you to simulate complex logic or unpredictable dependencies, such as responses from external services. He covers how the Mock class can imit...
Exploring MCP Apps & Adding Interactive UIs to Clients
How can you move your MCP tools beyond plain text? How do you add interactive UI components directly inside chat conversations? This week on the show, Den Delimarsky from Anthropic joins us to discuss MCP Apps and interactive UIs in MCP.
Den is a member of the MCP Steering Committee and a Core Maintainer focusing on auth and security. He explains how MCP acts as a universal bridge, providing AI models with the real-time context they need. He shares insights on working with MCP Apps and moving beyond simple text to render web-based user interfaces directly in...
Running Local LLMs With Ollama and Connecting With Python
Would you like to learn how to work with LLMs locally on your own computer? How do you integrate your Python projects with a local model? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
We cover a recent Real Python step-by-step tutorial on installing local LLMs with Ollama and connecting them to Python. It begins by outlining the advantages this strategy offers, including reducing costs, improving privacy, and enabling offline-capable AI-powered apps. We talk through the steps of setting things up, generating text and code, and ca...
Improving Your GitHub Developer Experience
What are ways to improve how youâre using GitHub? How can you collaborate more effectively and improve your technical writing? This week on the show, Adam Johnson is back to talk about his new book, âBoost Your GitHub DX: Tame the Octocat and Elevate Your Productivityâ.
Adam has written a series of books about improving developer experience (DX). In this episode, we dig into his newest book, which focuses on GitHub and how to get the most out of its featuresâfrom settings and keyboard shortcuts to hidden tools, CLI commands, and the command palette.
Adam a...
Testing Python Code for Scalability & What's New in pandas 3.0
How do you create automated tests to check your code for degraded performance as data sizes increase? What are the new features in pandas 3.0? Christopher Trudeau is back on the show this week with another batch of PyCoderâs Weekly articles and projects.
Christopher digs into an article about building tests to make sure your software is fast, or at least doesnât get slower as it scales. The piece focuses on testing Big-O scaling and its implications for algorithms.
We also discuss another article covering the top features in pandas 3.0, including the new dedicated stri...
Continuing to Improve the Learning Experience at Real Python
If you havenât visited the Real Python website lately, then itâs time to check out a great batch of updates on realpython.com! Dan Bader returns to the show this week to discuss improvements to the site and more ways to learn Python.
Dan details changes to the website, including our Python reference area. This tool provides a quick reference for both beginners and experienced developers looking for concise definitions and refreshers on Pythonâs features.
We discuss the expansion of our live courses to include a beginner course and an intermediate deep dive...
Considering Fast and Slow in Python Programming
How often have you heard about the speed of Python? Whatâs actually being measured, where are the bottlenecksâdevelopment time or run timeâand which matters more for productivity? Christopher Trudeau is back on the show this week, bringing another batch of PyCoderâs Weekly articles and projects.
Christopher shares an article titled âThe Uselessness of âFastâ and âSlowâ in Programming.â It digs into how the different aspects of software performance span a wide range of orders of magnitude, and how developers can obsess over irrelevant performance details, often losing more time working in suboptimal environments than building what t...
Coding Python With Confidence: Beginners Live Course Participants
Are you looking for that solid foundation to begin your Python journey? Would the accountability of scheduled group classes help you get through the basics and start building something? This week, two members of the Python for Beginners live course discuss their experiences.
We speak with course instructor Stephen Gruppetta about building a course where the participants start using their knowledge as soon as possible. He describes how heâs evolved his teaching techniques over years of working with beginners. We explore the advantages of having a curated collection of written tutorials, video courses, and a forum fo...
PyCoder's Weekly 2025 Top Articles & Hidden Gems
PyCoderâs Weekly included over 1,500 links to articles, blog posts, tutorials, and projects in 2025. Christopher Trudeau is back on the show this week to help wrap up everything by sharing some highlights and uncovering a few hidden gems from the pile.
We share the top links explored by PyCoderâs readers. We also dig into trends across all the articles and stories this year. We highlight a few gems that we didnât cover on the show and a couple that explore the overall themes of the year.
We hope you enjoy this review! We look f...
Moving Towards Spec-Driven Development
What are the advantages of spec-driven development compared to vibe coding with an LLM? Are these recent trends a move toward declarative programming? This week on the show, Marc Brooker, VP and Distinguished Engineer at AWS, joins us to discuss specification-driven development and Kiro.
Marc describes the process of developing an application by writing specifications, which outline what a program should do and what needs it should meet. We dig into a bit of computer science history to explore the differences between declarative and imperative programming.
We also discuss Kiro, a new integrated development environment...
Exploring Quantum Computing & Python Frameworks
What are the recent advances in the field of quantum computing and high-performance computing? And what Python tools can you use to develop programs that run on quantum computers? This week on the show, Real Python author Negar Vahid discusses her tutorial, âQuantum Computing Basics With Qiskit.â
Negar digs into the fundamentals of quantum computers, describing qubits, superposition, entanglement, and interference. We discuss the concept of quantum advantage and the fields of exploration where quantum computing promises speed-ups over classical computers. She also shares tools for designing quantum circuits with Python.
Course Spotlight: Profiling Performance in P...