The Real Python Podcast

The Real Python Podcast

https://realpython.com/podcasts/rpp/feed
677 Followers 309 Episodes Claim Ownership
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.

Episode List

Navigating Silent Failures in AI: Strategies for Effective Oversight

Aug 21st, 2026 12:00 PM

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 shares the example project from his talk, which includes Markdown files for the agents, hooks, skills, and scripts. He also discusses a variety of coding agents, skill frameworks, and CLI tools. Course Spotlight: Coding With OpenCode: AI-Assisted Python Learn how to use OpenCode for AI-assisted Python coding, using a free Gemini API key to analyze and refactor code right in your terminal. Topics: 00:00:00 – Introduction 00:02:19 – Co-hosting Python Bytes 00:03:43 – Why AI Fails Silently talk 00:11:07 – Digging into silent failures and an audit trail 00:18:44 – How would you define hooks? 00:20:48 – Document extraction, embeddings, and Cowork 00:30:38 – Stripping the noise from file formats 00:34:43 – Things that are now baked into models 00:45:53 – Video Course Spotlight 00:47:23 – Leveraging agents to pick models 00:51:44 – GitHub repo for the project 00:54:57 – The current market around tokens 01:00:12 – What are you excited about in the world of Python? 01:03:02 – What do you want to learn next? 01:04:21 – The content the LLMs are trained on 01:07:36 – Upcoming events 01:08:38 – Thanks and goodbye Show Links: Why AI Fails Silently and How to Fix It Claude Cowork - Claude by Anthropic List of All Oblique Strategies - Matt Rickard Pi Coding Agent goose - Your open source AI agent Codex CLI - ChatGPT Learn 2026 All Things Open AI: Orchestrate Agentic AI: Context, Checklists, and No-Miss Reviews - GitHub scaf: A template manager that simplifies bootstrapping and updating projects. Tau - Learn how coding agents are built. superpowers: An agentic skills framework & software development methodology that works. Hermes Agent — Open-Source AI Agent That Grows With You PyOhio 2026 - PyOhio 2026 AWS re:Invent 2026 - Nov 30-Dec 4, Las Vegas Python Bytes - Python News Podcast beats the hell out of me - painfully - YouTube Level up your Python skills with our expert-led courses: Getting Started With Claude Code Use Codex CLI to Enhance Your Python Projects Coding With OpenCode: AI-Assisted Python Support the podcast & join our community of Pythonistas

Improving NumPy Performance on Free-Threaded Python

Aug 14th, 2026 12:00 PM

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 PyPI, a tool for crawling your Django project, SIMD in pure Python, managing wildcard imports, a publication-quality Python Data Visualization library, and a tool to review your Django schema. Spotlight: Modern Object-Oriented Python Book Master classes, Python’s data model, and object-oriented design with Modern Object-Oriented Python. The best of Real Python’s OOP tutorials, curated into one book and fully up to date for modern Python. Topics: 00:00:00 – Introduction 00:02:26 – Python 3.15.0 candidate 1 is here! 00:02:47 – Python 3.14.7 and 3.13.15 are now available! 00:03:00 – Django 6.1 released 00:03:39 – Planned Updates to the PyPI User Interface 00:04:13 – PyPI Releases Now Reject New Files After 14 Days 00:05:07 – PEP 837 – Extensible JSON serialization 00:06:20 – PEP 842: Module Exports 00:07:51 – Introducing django-crawl 00:12:02 – SIMD in Pure Python 00:18:29 – Managing Imports With Python’s __all__ 00:29:34 – Spotlight: Modern Object-Oriented Python Book 00:30:53 – Scaling NumPy on Free-Threaded Python 00:37:53 – cnsplots: Python Data Visualization for Complex Datasets 00:42:19 – django-orm-lens: Django Schema Review 00:45:14 – Thanks and goodbye News: Python 3.15.0 candidate 1 is here! - Python Insider Python 3.14.7 and 3.13.15 are now available! - Python Insider Django 6.1 released - Weblog - Django Planned Updates to the PyPI User Interface – Over the next few months a new user interface will be rolled out for the Python packaging website, PyPI. The rollout will be done in phases to make sure it is rock solid and to get community feedback. This post talks about the history of PyPI’s UI and what is changing. PyPI Releases Now Reject New Files After 14 Days – “The Python Package Index (PyPI) now rejects new files being uploaded to releases that are older than 14 days. This restriction was put in place to prevent old and long-stable releases from being poisoned” PEP 837 – Extensible JSON serialization PEP 842: Module Exports Show Links: Introducing django-crawl – During a recent site migration, Adam used the Django test harness to crawl his site looking for missing security headers. In the process he uncovered seven other bugs for a project that had 100% code coverage. He has consolidated the crawling technique for testing into a library: django-crawl. SIMD in Pure Python – SIMD is Single Instruction, Multiple Data, an approach that does calculations with vectors of data sets. Python doesn’t support it natively, but libraries like NumPy allow you to code this way. Thoughts on “SIMD in Pure Python” - purplesyringa’s blog Managing Imports With Python’s __all__ – Learn how Python’s dunder all variable controls wildcard imports and shapes the public API your packages and modules expose. Scaling NumPy on Free-Threaded Python – A recap on the work done in NumPy and CPython to make multi-threaded NumPy workloads scale on the free-threaded build of CPython. Projects: cnsplots: Python Data Visualization for Complex Datasets django-orm-lens: Django Schema Review Additional Links: What’s up Python? __json__, __export__ and Astral stuff Episode #97: Improving Your Django and Python Developer Experience Python’s __all__: Packages, Modules, and Wildcard Imports – Tutorial Quiz: Managing Imports With Python’s __all__ Smoke - The Amazing Hamster, Storing Food - YouTube Modern Object-Oriented Python Book – Real Python Level up your Python skills with our expert-led courses: Python Modules and Packages: An Introduction NumPy Techniques and Practical Examples Managing Imports With Python's all Support the podcast & join our community of Pythonistas

Programmatically Developing LLM Prompts With DSPy

Aug 7th, 2026 12:00 PM

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 within an application. Course Spotlight: Using LlamaIndex for RAG in Python Learn how to set up LlamaIndex, load your data, build and persist an index, and run queries to get grounded answers with RAG in Python. Topics: 00:00:00 – Introduction 00:01:50 – Working on a new book 00:02:53 – Writing with a partner 00:04:16 – Building LLM Applications with DSPy 00:05:22 – What is DSPy? 00:06:58 – Working with signatures and typing 00:09:53 – Prompt engineering failing to work for a new model 00:13:43 – What is an optimizer? 00:19:04 – Moving toward a new level of abstraction in prompting 00:23:19 – Prompts for the LLM within a consumer facing application 00:28:26 – Video Course Spotlight 00:30:21 – Example of using with RAG 00:38:45 – Example of a business plan tool 00:43:06 – The Bitter Lesson 00:46:03 – Structure of the book 00:49:55 – Advice on starting with DSPy 00:54:15 – Example of a transformed prompt 00:59:37 – What are you excited about in the world of Python? 01:01:47 – What do you want to learn next? 01:04:11 – What’s the best way to follow your work online? 01:04:40 – Thanks and goodbye Show Links: Building LLM Applications with DSPy - Serj Smorodinsky and Brett Kennedy DSPy DSPy: The framework for programming—not prompting—language models - GitHub Tutorials Overview - DSPy GEPA optimization - DSPy Let the LLM Write the Prompts: An Intro to DSPy in Compound AI Pipelines - YouTube Episode #208: Detecting Outliers in Your Data With Python Tabular Models Benchmark: Performance Across 19 Datasets 2026 Brett Kennedy on Manning Serj Smorodinsky on Manning W Brett Kennedy – Medium Brett Kennedy - LinkedIn Level up your Python skills with our expert-led courses: Building Type-Safe LLM Agents With Pydantic AI Accessing Multiple AI Models With the OpenRouter API Using LlamaIndex for RAG in Python Support the podcast & join our community of Pythonistas

Should You Understand Your Entire Python Codebase?

Jul 31st, 2026 12:00 PM

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 recent video course that explores Python’s built-in functions. The course is divided into sections to help you find the right built-in for tasks involving math, data types, iterables, and I/O. We discuss which of these functions are frequently used in our code. We also share other articles and projects from the Python community, including recent releases, querying with f-expressions in Django, replacing if-else chains, a Rust-based replacement for Python’s json module, and a couple of Python cheat sheet resources. This episode is sponsored by HydraDB. Course Spotlight: Exploring Python’s Built-in Functions Learn Python’s built-in functions for math, data types, iterables, and I/O, and when to use each to write more Pythonic code. Topics: 00:00:00 – Introduction 00:02:29 – Christopher’s Python News Song 00:03:18 – Python 3.15.0 Beta 4 Released 00:03:39 – PEP 838: Adding python-version to pyvenv.cfg 00:04:59 – PEP 840: Name Resolution in Class Namespaces 00:06:42 – Stop Using if-else Chains 00:13:46 – Sponsor: HydraDB 00:14:44 – Nifty Django Feature: F Expressions 00:20:23 – In Defense of Not Understanding Your Codebase 00:34:13 – Exploring Python’s Built-in Functions 00:45:26 – Video Course Spotlight 00:46:57 – Python strftime/strptime Directive Cheat Sheet 00:50:22 – Itertools Cheatsheet 00:52:59 – Introducing django-orjson 00:55:33 – Thanks and goodbye News: Python 3.15.0 Beta 4 Released PEP 838: Adding python-version to pyvenv.cfg (Added) PEP 840: Name Resolution in Class Namespaces (Added) Show Links: Stop Using if-else Chains – Learn a cleaner, more extensible way to dispatch logic in Python using dictionaries and function pointers instead of long if-else chains. Nifty Django Feature: F Expressions – Django’s F-Expression provides a way of querying fields from the ORM. They’re particularly handy to traverse relationships in more complex queries. F() Expressions - Django Documentation In Defense of Not Understanding Your Codebase – In this opinion piece, Sean argues that there is a difference in the thought process between maintaining smaller software projects vs larger ones, and that the former is over represented in engineering discussion in the internet. Exploring Python’s Built-in Functions – Learn Python’s built-in functions for math, data types, iterables, and I/O, and when to use each to write more Pythonic code. Projects: Python strftime/strptime Directive Cheat Sheet Itertools Cheatsheet – Cheatsheet with visual diagrams that explain how the iterables from itertools work. Introducing django-orjson – orjson is a Rust-based replacement for Python’s json module. So what would Adam Johnson do with it? Make it easier to use in Django of course. orjson: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy django-orjson documentation Additional Links: Primer on Python Decorators - Registering Plugins Python Built-in Functions: A Complete Guide Python Cheat Sheet – Real Python What’s in which Python - Ned Batchelder Level up your Python skills with our expert-led courses: Using Python's datetime Module Python Basics: Conditional Logic and Control Flow Exploring Python's Built-in Functions Support the podcast & join our community of Pythonistas

Configuring a Versatile LLM Harness & Scraping the Web With Scrapy

Jul 24th, 2026 12:00 PM

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 how he navigated shifting from prompt engineering to context and loop engineering. This episode is sponsored by HydraDB. Course Spotlight: Introduction to Web Scraping With Python In this video course, you’ll learn all about web scraping in Python. You’ll see how to parse data from websites and interact with HTML forms using tools such as Beautiful Soup and MechanicalSoup. Topics: 00:00:00 – Introduction 00:02:01 – Scrapy and building an extension 00:08:46 – Zyte and the web scraping API 00:11:19 – Sponsor: HydraDB 00:12:22 – noalgotube project 00:15:49 – Homelab & self hosting projects 00:22:19 – What goes into a harness? 00:32:33 – Where did you start exploring LLM tools? 00:36:13 – Local models & edge computing 00:39:31 – ExtractPod and discussing Apple’s AI 00:43:35 – Video Course Spotlight 00:44:54 – Managing token use and tools 00:52:37 – What are you excited about in the world of Python? 00:55:10 – What do you want to learn next? 00:56:38 – What is the best way to follow your work online? 00:56:58 – Thanks and goodbye Show Links: How to build your first Scrapy extension Web Scraping API - All-in-one Web Scraper - Zyte API Web Scraping With Scrapy and MongoDB – Real Python noalgotube: I Built My Own YouTube Feed Because the Algorithm Stopped Working for Me - CodeNSolder noalgotube: A personal content aggregator for YouTube channels and blog RSS feeds Why homelab? Building a proper self-hosted setup from scratch - CodeNSolder OPNsense: Open source, feature rich firewall and routing platform, offering cutting-edge network protection Proxmox - Powerful open-source server solutions Pi-hole – Network-wide Ad Blocking omni-tools: Self-hosted collection of powerful web-based tools for everyday tasks Frigate NVR Harness Engineering, part 1: What is an agent harness and why it matters My agentic coding setup: Claude Code, multi-agent orchestration, and how I actually work ExtractPod EP07 - AI Harnesses, our model usage and a Scottish dinner staple. - YouTube OpenCode - The open source AI coding agent OpenRouter Gemma 4 — Google DeepMind LM Studio Bionic - Agent for Open Models GLM-5.2: Built for Long-Horizon Tasks caveman: 🪨 why use many token when few token do trick — Claude Code skill ponytail: Makes your AI agent think like the laziest senior dev in the room Episode #301: Running Python Locally in a Sandbox Aillio – Bullet R2 - Coffee Roaster CodeNSolder Ayan Pahwa - Zyte HydraDB Level up your Python skills with our expert-led courses: Introduction to Web Scraping With Python Getting Started With Claude Code Testing MCP Servers With a Python MCP Client Support the podcast & join our community of Pythonistas

Get this podcast on your phone, Free

Create Your Podcast In Minutes

  • Full-featured podcast site
  • Unlimited storage and bandwidth
  • Comprehensive podcast stats
  • Distribute to Apple Podcasts, Spotify, and more
  • Make money with your podcast
Get Started
It is Free