Afleveringen

  • If you've ever been to PyCon, you know one of the best parts of the expo hall is Startup Row, a stretch of booths where early-stage companies built on Python show off what they're creating. But only attendees get to walk that lane, so let's bring it to everyone. In this episode, we stroll down Startup Row together. We kick things off with the organizers, Jason and Shay, who share the program's origin story going back to Paul Graham and the PSF, plus some surprising stats, including two unicorns among the alumni. Then we meet five startups: Tetrix, bringing AI to institutional investing in private markets. Arcjet, security that lives inside your app as an SDK. Phemeral.dev, serverless hosting built for Python web apps. CapiscIO, an identity and authority layer for AI agents. And Pixeltable, a multimodal database from Marcel Kornacker, co-creator of Apache Parquet. See if you can spot the theme running through them all. Let's go for a walk.

    Episode sponsors

    AgentField AI
    Talk Python Courses

    Links from the showGuests
    Naunidh Bhalla: linkedin.com
    Grant Gittes: linkedin.com
    Marcel Kornacker: linkedin.com
    Beon de Nood: linkedin.com
    Chinmaya Joshi: linkedin.com
    David Mytton: linkedin.com
    Shea Tate-Di Donna: linkedin.com
    Jason Rowley: linkedin.com
    Azul Garza: github.com
    Renée Rosillo: linkedin.com

    Tetrix: tetrix.co
    Tetrix Jobs: tetrix.co
    Arcjet: arcjet.com
    Pixeltable: pixeltable.com
    Phemeral.dev: phemeral.dev
    CapiscIO: capisc.io

    Episode #551 deep-dive: talkpython.fm/551
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • You wake up, brew the coffee, open GitHub, and there it is. Another pull request on your open source project. Thirteen thousand lines added. No issue filed first. No discussion. Just "here, please review this for me."

    Over the past year, GitHub activity has spiked roughly twelve times in a few short months, and a huge chunk of that signal is landing on the same small group of maintainers who were already stretched thin. The curl bug bounty got buried under AI-generated noise. Jazzband, the home of Django classics like pip-tools and the Django debug toolbar, hit what its maintainer called an "apocalypse" and started sunsetting. Even CPython just shipped fresh guidelines on AI-assisted contributions this week.

    So what does all of this actually look like from the receiving end of the pull request?

    On this episode, Paolo Melchiorre joins us to tell that story from inside the maintainer's chair. Paolo is a director of the Django Software Foundation, an organizer of PyCon Italy, a Django Girls coach, and he has spent the past year carefully collecting examples of how AI is reshaping open source contributions. The good, the bad, and the extra fingers.

    We dig into his PyCon US talk on AI-assisted contributions and maintainer load, why AI is best understood as an amplifier rather than a new kind of contributor, the wildly different policies across 86 open source foundations, whether projects banning AI today are reacting to last year's models.

    Episode sponsors

    AgentField AI
    Talk Python Courses

    Links from the showGuest
    Paolo Melchiorre: github.com

    DSF: www.djangoproject.com
    djangonaut-space: djangonaut.space
    PyCon Italia: 2026.pycon.it
    uDjango: github.com
    My PyCon US 2026 post: www.paulox.net
    AI-Assisted Contributions and Maintainer Load: www.paulox.net
    Senior Engineer Tries Vibe Coding: www.youtube.com
    Code Rabbit AI PR Reviews: www.coderabbit.ai
    GitHub Usage Graphs: github.blog
    Update on CPython's AI Policies: fosstodon.org
    High-Quality Chaos from Curl: daniel.haxx.se
    The Generative AI Policy Landscape in Open Source: redmonk.com

    Watch this episode on YouTube: youtube.com
    Episode #550 deep-dive: talkpython.fm/550
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Zijn er afleveringen die ontbreken?

    Klik hier om de feed te vernieuwen.

  • Your documentation has two audiences now - humans reading the rendered HTML, and AI agents trying to make sense of your library. Rich Iannone and Michael Chow from Posit are back on Talk Python with a brand new Python documentation tool called Great Docs that takes both seriously. Rich is the creator of Great Tables, and before that the R package GT, the man has a serious eye for design, and he's pointed that energy at the Python docs ecosystem. We'll talk about how Great Docs spins up a polished site in three commands, why every page ships as Markdown for your favorite LLM, how it leans on Quarto for executable code blocks and tabbed install sections, and where it lands against Sphinx, MkDocs, and Zensical. Plus, you'll meet Tablin. Here we go.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Temporal
    Talk Python Courses

    Links from the showGuests
    Michael Chow: github.com
    Rich lannone: github.com

    Python Web Security with OWASP Top 10 and Agentic AI Course: talkpython.fm

    Great Docs: posit-dev.github.io/great-docs
    Great Tables: posit-dev.github.io
    GT Episode: talkpython.fm
    Sphinx: www.sphinx-doc.org
    mkdocs: www.mkdocs.org
    Zensical: zensical.org
    Hugo: gohugo.io
    Ghost: ghost.org
    Rs pkgdown: pkgdown.r-lib.org
    Quarto: quarto.org
    quickstart: posit-dev.github.io
    llms.txt file: llmstxt.org
    llms.txt: talkpython.fm
    mcp: talkpython.fm
    cli: talkpython.fm

    Watch this episode on YouTube: youtube.com
    Episode #549 deep-dive: talkpython.fm/549
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • What if your database worked more like Git? Every change captured as an immutable event you can replay, instead of a single mutating row that quietly forgets its own history. That's event sourcing, and Chris May is back on Talk Python, fresh off our Datastar panel, to walk us through what it actually looks like in Python. We'll cover the core patterns, the libraries to reach for, when not to use it, and why event sourcing turns out to be a surprisingly good fit for AI-assisted coding.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Temporal
    Talk Python Courses

    Links from the showGuest
    Chris May: everydaysuperpowers.dev

    Intro to event sourcing e-book: everydaysuperpowers.gumroad.com

    Domain-Driven Design: The Power of CQRS and Event Sourcing: How CQRS/ES Redefine Building Scalable System: ricofritzsche.me
    DDD: www.amazon.com
    Understanding Eventsourcing (Martin Dilger): www.amazon.com
    Event Sourcing Explained using Football Video: www.youtube.com
    Why I finally embraced event sourcing and why you should too article: everydaysuperpowers.dev
    valkey: valkey.io
    diskcache: talkpython.fm
    eventsourcing package: github.com
    eventsourcing docs: eventsourcing.readthedocs.io
    John Bywater: github.com
    Datastar: data-star.dev
    Microconf: microconf.com
    Event Modeling & Event Sourcing Podcast: podcast.eventmodeling.org
    Python Package Guides for AI Agents: github.com
    Iodine tablets AI joke: x.com
    KurrentDb: www.kurrent.io

    Watch this episode on YouTube: youtube.com
    Episode #548 deep-dive: talkpython.fm/548
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • When OpenAI trained GPT-3, they didn't roll their own orchestration layer. They used Ray, an open source Python framework born out of the same Berkeley research lab lineage that gave us Apache Spark. And here's the twist: Ray was originally built for reinforcement learning research, then quietly faded as RL hit a wall. Until ChatGPT showed up. Suddenly reinforcement learning was back, as the post-training step that turns a raw language model into something genuinely useful.

    Edward Oakes and Richard Liaw, two founding engineers behind Ray and Anyscale, join me on Talk Python to tell that story. We'll trace Ray from its RISE Lab origins at UC Berkeley to powering some of the largest training runs in the world. We'll talk about what Ray actually is, a distributed execution engine for AI workloads, and how a few lines of Python become work running across hundreds of GPUs. We'll cover Ray Data for multimodal pipelines, the dashboard, the VS Code remote debugger, KubRay for Kubernetes, and where Ray fits alongside Dask, multiprocessing, and asyncio.

    If you've ever stared at a single-machine Python script and thought, "there has to be a better way to scale this", this one's for you

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    AgentField AI
    Talk Python Courses

    Links from the showGuests
    Richard Liaw: github.com
    Edward Oakes: github.com

    Ray: www.ray.io
    Example code (we used for walk-through): docs.ray.io
    Getting Started with Ray: docs.ray.io
    Ray Libraries: docs.ray.io
    kuberay: github.com

    Watch this episode on YouTube: youtube.com
    Episode #547 deep-dive: talkpython.fm/547
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • The cloud is convenient until it isn't. You upload your photos, sync your contacts, click through the cookie banners. Then prices go up again or you read about a family that lost their entire Google account over a medical photo sent to a doctor. At some point, the question shifts from "why would I run this myself?" to "why aren't I?"

    My guest this week is Alex Kretzschmar, head of DevRel at Tailscale, longtime host of the Self-Hosted podcast, and co-founder of Linuxserver.io. We cover what self-hosting really means in 2026, the apps worth running yourself like Immich and Home Assistant, why Docker Compose ties it all together, and how Tailscale lets you reach any of it from anywhere, without opening a single port. If you've been thinking about pulling your digital life back behind your own walls, this is your roadmap.

    Episode sponsors

    Temporal
    Talk Python Courses

    Links from the showGuest
    Alex Kretzschmar: alex.ktz.me

    Bitflip podcast: bitflip.show
    Self-Hosted podcast (Alex's previous show): selfhosted.show
    Perfect Media Server: perfectmediaserver.com
    KTZ Systems on YouTube: youtube.com/@ktzsystems
    Linuxserver.io (co-founded by Alex): linuxserver.io
    "How Tailscale Works" blog post: tailscale.com/blog/how-tailscale-works
    https://tailscale.com/: tailscale.com

    Self-hosted apps discussed
    Awesome Self-Hosted (GitHub list): github.com
    Immich (Google Photos alternative): immich.app
    Home Assistant: home-assistant.io
    Open Home Foundation: openhomefoundation.org
    Plausible Analytics: plausible.io
    Umami Analytics: umami.is
    Python integration for umami: pypi.org
    Pi-hole: pi-hole.net
    AdGuard Home: adguard.com
    NextDNS: nextdns.io
    Coolify: coolify.io
    Docker + ufw: docs.docker.com

    Storage, backup & filesystem
    OpenZFS: openzfs.org
    ZFS.rent (offsite ZFS replication): zfs.rent
    Backblaze: backblaze.com
    Hetzner Storage Box: hetzner.com
    DigitalOcean: digitalocean.com

    Secrets management mentioned
    OpenBao (open-source Vault fork): openbao.org
    HashiCorp Vault: hashicorp.com
    Bitwarden: bitwarden.com
    1Password: 1password.com

    Hardware mentioned
    Proxmox VE: proxmox.com
    Minisforum MS01: minisforum.com
    Zima Board / Zima OS: zimaspace.com

    Other references
    Cory Doctorow on "enshittification" (Cory's blog where he coined the term): pluralistic.net
    Linus Tech Tips' WAN Show (Linus mentioned NAS-building going mainstream): linustechtips.com

    Watch this episode on YouTube: youtube.com
    Episode #546 deep-dive: talkpython.fm/546
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • The OWASP Top 10 just got a fresh update, and there are some big changes: supply chain attacks, exceptional condition handling, and more. Tanya Janca is back on Talk Python to walk us through every single one of them. And we're not just talking theory, we're going to turn Claude Code loose on a real open source project and see what it finds. Let's do it.

    Episode sponsors

    Temporal
    Talk Python Courses

    Links from the showDevSec Station Podcast: www.devsecstation.com
    SheHacksPurple Newsletter: newsletter.shehackspurple.ca
    owasp.org: owasp.org
    owasp.org/Top10/2025: owasp.org
    from here: github.com
    Kinto: github.com
    A01:2025 - Broken Access Control: owasp.org
    A02:2025 - SecuA02 Security Misconfiguration: owasp.org
    ASP.NET: ASP.NET
    A03:2025 - Software Supply Chain Failures: owasp.org
    A04:2025 - Cryptographic Failures: owasp.org
    A05:2025 - Injection: owasp.org
    A06:2025 - Insecure Design: owasp.org
    A07:2025 - Authentication Failures: owasp.org
    A08:2025 - Software or Data Integrity Failures: owasp.org
    A09:2025 - Security Logging and Alerting Failures: owasp.org
    A10 Mishandling of Exceptional Conditions: owasp.org
    https://github.com/KeygraphHQ/shannon: github.com
    anthropic.com/news/mozilla-firefox-security: www.anthropic.com
    generalpurpose.com/the-distillation/claude-mythos-what-it-means-for-your-business: www.generalpurpose.com
    Python Example Concepts: blobs.talkpython.fm

    Watch this episode on YouTube: youtube.com
    Episode #545 deep-dive: talkpython.fm/545
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • When you pip install a package with compiled code, the wheel you get is built for CPU features from 2009. Want newer optimizations like AVX2? Your installer has no way to ask for them. GPU support? You're on your own configuring special index URLs. The result is fat binaries, nearly gigabyte-sized wheels, and install pages that read like puzzle books. A coalition from NVIDIA, Astral, and QuanSight has been working on Wheel Next: A set of PEPs that let packages declare what hardware they need and let installers like uv pick the right build automatically. Just uv pip install torch and it works. I sit down with Jonathan Dekhtiar from NVIDIA, Ralf Gommers from Quansight and the NumPy and SciPy teams, and Charlie Marsh, founder of Astral and creator of uv, to dig into all of it.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Temporal
    Talk Python Courses

    Links from the showGuests
    Charlie Marsh: github.com
    Ralf Gommers: github.com
    Jonathan Dekhtiar: github.com

    CPU dispatcher: numpy.org
    build options: numpy.org
    Red Hat RHEL: www.redhat.com
    Red Hat RHEL AI: www.redhat.com
    RedHats presentation: wheelnext.dev
    CUDA release: developer.nvidia.com
    requires a PEP: discuss.python.org
    WheelNext: wheelnext.dev
    Github repo: github.com
    PEP 817: peps.python.org
    PEP 825: discuss.python.org
    uv: docs.astral.sh
    A variant-enabled build of uv: astral.sh
    pyx: astral.sh
    pypackaging-native: pypackaging-native.github.io
    PEP 784: peps.python.org

    Watch this episode on YouTube: youtube.com
    Episode #544 deep-dive: talkpython.fm/544
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • When you type a question into ChatGPT, the model only has what you typed to work with. But tools like Claude Code can plan, iterate, test, and recover from mistakes. They work more like we do. The difference is the agent harness: Planning tools, file system access, sub-agents, and carefully crafted system prompts that turn a raw LLM into something genuinely capable.

    Sydney Runkle is back on Talk Python representing LangChain and their new open source library, Deep Agents: A framework for building your own deep agents with plain Python functions, middleware hooks, and MCP support. This is how the magic works under the hood.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Agentic AI Course
    Talk Python Courses

    Links from the showGuest
    Sydney Runkle: github.com

    Claude Code uses: x.com
    Deep Research: openai.com
    Manus: manus.im
    Blog post announcement: blog.langchain.com
    Claudes system prompt: github.com
    sub agents: docs.anthropic.com
    the quick start: docs.langchain.com
    CLIs: github.com
    Talk Python's CLI: talkpython.fm
    custom tools: docs.langchain.com
    DeepAgents Examples: github.com
    Custom Middleware: docs.langchain.com
    Built in middleware: docs.langchain.com
    Improving Deep Agents with harness engineering: blog.langchain.com
    Prebuilt middleware: docs.langchain.com

    Watch this episode on YouTube: youtube.com
    Episode #543 deep-dive: talkpython.fm/543
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • If you've built documentation in the Python ecosystem, chances are you've used Martin Donath's work. His Material for MKDocs powers docs for FastAPI, uv, AWS, OpenAI, and tens of thousands of other projects. But when MKDocs 2.0 took a direction that would break Material and 300 ecosystem plugins, Martin went back to the drawing board. The result is Zensical: A new static site generator with a Rust core, differential builds in milliseconds instead of minutes, and a migration path designed to bring the whole community along.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Talk Python Courses

    Links from the showGuest
    Martin Donath: github.com

    Zensical: zensical.org
    Material for MkDocs: squidfunk.github.io
    Getting Started: zensical.org
    Github pages: docs.github.com
    Cloudflare pages: pages.cloudflare.com
    Michaels Example: gist.github.com
    Material for MkDocs: zensical.org
    gohugo.io/content-management/shortcodes: gohugo.io
    a sense of size of the project: blobs.talkpython.fm
    Zensical Spark: zensical.org

    Watch this episode on YouTube: youtube.com
    Episode #542 deep-dive: talkpython.fm/542
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • When LLMs write code to accomplish a task, that code has to actually run somewhere. And right now, the options aren't great. Spin up a sandboxed container and you're paying a full second of cold start overhead plus the complexity of another service. Let the LLM loose on your actual machine and... well, you'd better be watching.

    On this episode, I sit down with Samuel Colvin, creator of Pydantic, now at 10 billion downloads, to explore Monty, a Python interpreter written from scratch in Rust, purpose-built to run LLM-generated code. It starts in microseconds, is completely sandboxed by design, and can even serialize its entire state to a database and resume later. We dig into why this deliberately limited interpreter might be exactly what the AI agent era needs.

    Episode sponsors

    Talk Python Courses
    Python in Production

    Links from the showGuest
    Samuel Colvin: github.com

    CPython: github.com
    IronPython: ironpython.net
    Jython: www.jython.org
    Pyodide: pyodide.org
    monty: github.com
    Pydantic AI: pydantic.dev
    Python AI conference: pyai.events
    bashkit: github.com
    just-bash: github.com
    Narwhals: narwhals-dev.github.io
    Polars: pola.rs
    Strands Agents: aws.amazon.com
    Subscribe Running Pydantic’s Monty Rust sandboxed Python subset in WebAssembly: simonwillison.net
    Rust Python: github.com
    Valgrind: valgrind.org
    Cod Speed: codspeed.io

    Watch this episode on YouTube: youtube.com
    Episode #541 deep-dive: talkpython.fm/541
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Monorepos -- you've heard the talks, you've read the blog posts, maybe you've seen a few tantalizing glimpses into how Google or Meta organize their massive codebases. But it's often in the abstract and behind closed doors. What if you could crack open a real, production monorepo, one with over a million lines of Python and over 100 of sub-packages, and actually see how it's built, step by step, using modern tools and standards? That's exactly what Apache Airflow gives us.

    On this episode, I sit down with Jarek Potiuk and Amogh Desai, two of Airflow's top contributors, to go inside one of the largest open-source Python monorepos in the world and learn how they manage it with uv, pyproject.toml, and the latest packaging standards, so you can apply those same patterns to your own projects.

    Episode sponsors

    Agentic AI Course
    Python in Production
    Talk Python Courses

    Links from the showGuests
    Amogh Desai: github.com
    Jarek's GitHub: github.com

    definition of a monorepo: monorepo.tools
    airflow: airflow.apache.org
    Activity: github.com
    OpenAI: airflowsummit.org
    Part 1. Pains of big modular Python projects: medium.com
    Part 2. Modern Python packaging standards and tools for monorepos: medium.com
    Part 3. Monorepo on steroids - modular prek hooks: medium.com
    Part 4. Shared “static” libraries in Airflow monorepo: medium.com
    PEP-440: peps.python.org
    PEP-517: peps.python.org
    PEP-518: peps.python.org
    PEP-566: peps.python.org
    PEP-561: peps.python.org
    PEP-660: peps.python.org
    PEP-621: peps.python.org
    PEP-685: peps.python.org
    PEP-723: peps.python.org
    PEP-735: peps.python.org
    uv: docs.astral.sh
    uv workspaces: blobs.talkpython.fm
    prek.j178.dev: prek.j178.dev
    your presentation at FOSDEM26: fosdem.org
    Tallyman: github.com

    Watch this episode on YouTube: youtube.com
    Episode #540 deep-dive: talkpython.fm/540
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • You're adding type hints to your Python code, your editor is happy, autocomplete is working great. But then you switch tools and suddenly there are red squiggles everywhere. Who decides what a float annotation actually means? Or whether passing None where an int is expected should be an error? It turns out there's a five-person council dedicated to exactly these questions -- and two brand-new Rust-based type checkers are raising the bar. On this episode, I sit down with three members of the Python Typing Council -- Jelle Zijlstra, Rebecca Chen, and Carl Meyer -- to learn how the type system is governed, where the spec and the type checkers agree and disagree, and get the council's official advice on how much typing is just enough.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Agentic AI Course
    Talk Python Courses

    Links from the showGuests
    Carl Meyer: github.com
    Jelle Zijlstra: jellezijlstra.github.io
    Rebecca Chen: github.com

    Typing Council: github.com
    typing.python.org: typing.python.org
    details here: github.com
    ty: docs.astral.sh
    pyrefly: pyrefly.org
    conformance test suite project: github.com
    typeshed: github.com
    Stub files: mypy.readthedocs.io
    Pydantic: pydantic.dev
    Beartype: github.com
    TOAD AI: github.com
    PEP 747 – Annotating Type Forms: peps.python.org
    PEP 724 – Stricter Type Guards: peps.python.org
    Python Typing Repo (PRs and Issues): github.com

    Watch this episode on YouTube: youtube.com
    Episode #539 deep-dive: talkpython.fm/539
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Digital humanities sounds niche, until you realize it can mean a searchable archive of U.S. amendment proposals, Irish folklore, or pigment science in ancient art. Today I’m talking with David Flood from Harvard’s DARTH team about an unglamorous problem: What happens when the grant ends but the website can’t. His answer, static sites, client-side search, and sneaky Python. Let’s dive in.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Command Book
    Talk Python Courses

    Links from the showGuest
    David Flood: davidaflood.com

    DARTH: digitalhumanities.fas.harvard.edu
    Amendments Project: digitalhumanities.fas.harvard.edu
    Fionn Folklore Database: fionnfolklore.org
    Mapping Color in History: iiif.harvard.edu
    Apatosaurus: apatosaurus.io
    Criticus: github.com
    github.com/palewire/django-bakery: github.com
    sigsim.acm.org/conf/pads/2026/blog/artifact-evaluation: sigsim.acm.org
    Hugo: gohugo.io
    Water Stories: waterstories.fas.harvard.edu
    Tsumeb Mine Notebook: tmn.fas.harvard.edu
    Dharma and Punya: dharmapunya2019.org
    Pagefind library: pagefind.app
    django_webassembly: github.com
    Astro Static Site Generator: astro.build
    PageFind Python Lib: pypi.org
    Frozen-Flask: frozen-flask.readthedocs.io

    Watch this episode on YouTube: youtube.com
    Episode #538 deep-dive: talkpython.fm/538
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • You love building web apps with Python, and HTMX got you excited about the hypermedia approach -- let the server drive the HTML, skip the JavaScript build step, keep things simple. But then you hit that last 10%: You need Alpine.js for interactivity, your state gets out of sync, and suddenly you're juggling two unrelated libraries that weren't designed to work together.

    What if there was a single 11-kilobyte framework that gave you everything HTMX and Alpine do, and more, with real-time updates, multiplayer collaboration out of the box, and performance so fast you're actually bottlenecked by the monitor's refresh rate? That's Datastar.

    On this episode, I sit down with its creator Delaney Gillilan, core maintainer Ben Croker, and Datastar convert Chris May to explore how this backend-driven, server-sent-events-first framework is changing the way full-stack developers think about the modern web.

    Episode sponsors

    Sentry Error Monitoring, Code talkpython26
    Command Book
    Talk Python Courses

    Links from the showGuests
    Delaney Gillilan: linkedin.com
    Ben Croker: x.com
    Chris May: everydaysuperpowers.dev

    Datastar: data-star.dev
    HTMX: htmx.org
    AlpineJS: alpinejs.dev
    Core Attribute Tour: data-star.dev
    data-star.dev/examples: data-star.dev
    github.com/starfederation/datastar-python: github.com
    VSCode: marketplace.visualstudio.com
    OpenVSX: open-vsx.org
    PyCharm/Intellij plugin: plugins.jetbrains.com
    data-star.dev/datastar_pro: data-star.dev
    gg: discord.gg
    HTML-ivating your Django web app's experience with HTMX, AlpineJS, and streaming HTML - Chris May: www.youtube.com
    Senior Engineer tries Vibe Coding: www.youtube.com
    1 Billion Checkboxes: checkboxes.andersmurphy.com
    Game of life example: example.andersmurphy.com

    Watch this episode on YouTube: youtube.com
    Episode #537 deep-dive: talkpython.fm/537
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • You've built your FastAPI app, it's running great locally, and now you want to share it with the world. But then reality hits -- containers, load balancers, HTTPS certificates, cloud consoles with 200 options. What if deploying was just one command? That's exactly what Sebastian Ramirez and the FastAPI Cloud team are building. On this episode, I sit down with Sebastian, Patrick Arminio, Savannah Ostrowski, and Jonathan Ehwald to go inside FastAPI Cloud, explore what it means to build a "Pythonic" cloud, and dig into how this commercial venture is actually making FastAPI the open-source project stronger than ever.

    Episode sponsors

    Command Book
    Python in Production
    Talk Python Courses

    Links from the showGuests
    Sebastián Ramírez: github.com
    Savannah Ostrowski: github.com
    Patrick Arminio: github.com
    Jonathan Ehwald: github.com

    FastAPI labs: fastapilabs.com
    quickstart: fastapicloud.com
    an episode on diskcache: talkpython.fm
    Fastar: github.com
    FastAPI: The Documentary: www.youtube.com
    Tailwind CSS Situation: adams-morning-walk.transistor.fm
    FastAPI Job Meme: fastapi.meme
    Migrate an Existing Project: fastapicloud.com
    Join the waitlist: fastapicloud.com

    Talk Python CLI
    Talk Python CLI Announcement: talkpython.fm
    Talk Python CLI GitHub: github.com

    Command Book
    Download Command Book: commandbookapp.com
    Announcement post: mkennedy.codes

    Watch this episode on YouTube: youtube.com
    Episode #536 deep-dive: talkpython.fm/536
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Building on the web is like working with the perfect clay. It’s malleable and can become almost anything. But too often, frameworks try to hide the web’s best parts away from us. Today, we’re looking at PyView, a project that brings the real-time power of Phoenix LiveView directly into the Python world. I'm joined by Larry Ogrodnek to dive into PyView.

    Episode sponsors

    Talk Python Courses
    Python in Production

    Links from the showGuest
    Larry Ogrodnek: hachyderm.io

    pyview.rocks: pyview.rocks
    Phoenix LiveView: github.com
    this section: pyview.rocks
    Core Concepts: pyview.rocks
    Socket and Context: pyview.rocks
    Event Handling: pyview.rocks
    LiveComponents: pyview.rocks
    Routing: pyview.rocks
    Templating: pyview.rocks
    HTML Templates: pyview.rocks
    T-String Templates: pyview.rocks
    File Uploads: pyview.rocks
    Streams: pyview.rocks
    Sessions & Authentication: pyview.rocks
    Single-File Apps: pyview.rocks
    starlette: starlette.dev
    wsproto: github.com
    apscheduler: github.com
    t-dom project: github.com

    Watch this episode on YouTube: youtube.com
    Episode #535 deep-dive: talkpython.fm/535
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Your cloud SSD is sitting there, bored, and it would like a job. Today we’re putting it to work with DiskCache, a simple, practical cache built on SQLite that can speed things up without spinning up Redis or extra services. Once you start to see what it can do, a universe of possibilities opens up. We're joined by Vincent Warmerdam to dive into DiskCache.

    Episode sponsors

    Talk Python Courses
    Python in Production

    Links from the showdiskcache docs: grantjenks.com
    LLM Building Blocks for Python course: training.talkpython.fm
    JSONDisk: grantjenks.com
    Git Code Archaeology Charts: koaning.github.io
    Talk Python Cache Admin UI: blobs.talkpython.fm
    Litestream SQLite streaming: litestream.io
    Plash hosting: pla.sh

    Watch this episode on YouTube: youtube.com
    Episode #534 deep-dive: talkpython.fm/534
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Today on Talk Python, the creators behind FastAPI, Flask, Django, Quart, and Litestar get practical about running apps based on their framework in production. Deployment patterns, async gotchas, servers, scaling, and the stuff you only learn at 2 a.m. when the pager goes off. For Django, we have Carlton Gibson and Jeff Triplet. For Flask, we have David Lord and Phil Jones, and on team Litestar we have Janek Nouvertné and Cody Fincher, and finally Sebastián Ramírez from FastAPI is here. Let’s jump in.

    Episode sponsors

    Talk Python Courses
    Python in Production

    Links from the showGuests
    David Lord
    Janek Nouvertné
    Cody Fincher
    Philip Jones
    Jeff Triplett
    Carlton Gibson

    Carlton Gibson - Django: github.com
    Sebastian Ramirez - FastAPI: github.com
    David Lord - Flask: davidism.com
    Phil Jones - Flask and Quartz(async): pgjones.dev
    Yanik Nouvertne - LiteStar: github.com
    Cody Fincher - LiteStar: github.com
    Jeff Triplett - Django: jefftriplett.com

    Django: www.djangoproject.com
    Flask: flask.palletsprojects.com
    Quart: quart.palletsprojects.com
    Litestar: litestar.dev
    FastAPI: fastapi.tiangolo.com
    Coolify: coolify.io
    ASGI: asgi.readthedocs.io
    WSGI (PEP 3333): peps.python.org
    Granian: github.com
    Hypercorn: github.com
    uvicorn: uvicorn.dev
    Gunicorn: gunicorn.org
    Hypercorn: hypercorn.readthedocs.io
    Daphne: github.com
    Nginx: nginx.org
    Docker: www.docker.com
    Kubernetes: kubernetes.io
    PostgreSQL: www.postgresql.org
    SQLite: www.sqlite.org
    Celery: docs.celeryq.dev
    SQLAlchemy: www.sqlalchemy.org
    Django REST framework: www.django-rest-framework.org
    Jinja: jinja.palletsprojects.com
    Click: click.palletsprojects.com
    HTMX: htmx.org
    Server-Sent Events (SSE): developer.mozilla.org
    WebSockets (RFC 6455): www.rfc-editor.org
    HTTP/2 (RFC 9113): www.rfc-editor.org
    HTTP/3 (RFC 9114): www.rfc-editor.org
    uv: docs.astral.sh
    Amazon Web Services (AWS): aws.amazon.com
    Microsoft Azure: azure.microsoft.com
    Google Cloud Run: cloud.google.com
    Amazon ECS: aws.amazon.com
    AlloyDB for PostgreSQL: cloud.google.com
    Fly.io: fly.io
    Render: render.com
    Cloudflare: www.cloudflare.com
    Fastly: www.fastly.com

    Watch this episode on YouTube: youtube.com
    Episode #533 deep-dive: talkpython.fm/533
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy

  • Python in 2025 is in a delightfully refreshing place: the GIL's days are numbered, packaging is getting sharper tools, and the type checkers are multiplying like gremlins snacking after midnight. On this episode, we have an amazing panel to give us a range of perspectives on what matter in 2025 in Python. We have Barry Warsaw, Brett Cannon, Gregory Kapfhammer, Jodie Burchell, Reuven Lerner, and Thomas Wouters on to give us their thoughts.

    Episode sponsors

    Seer: AI Debugging, Code talkpython26
    Talk Python Courses

    Links from the showPython Software Foundation (PSF): www.python.org
    PEP 810: Explicit lazy imports: peps.python.org
    PEP 779: Free-threaded Python is officially supported: peps.python.org
    PEP 723: Inline script metadata: peps.python.org
    PyCharm: www.jetbrains.com
    JetBrains: www.jetbrains.com
    Visual Studio Code: code.visualstudio.com
    pandas: pandas.pydata.org
    PydanticAI: ai.pydantic.dev
    OpenAI API docs: platform.openai.com
    uv: docs.astral.sh
    Hatch: github.com
    PDM: pdm-project.org
    Poetry: python-poetry.org
    Project Jupyter: jupyter.org
    JupyterLite: jupyterlite.readthedocs.io
    PEP 690: Lazy Imports: peps.python.org
    PyTorch: pytorch.org
    Python concurrent.futures: docs.python.org
    Python Package Index (PyPI): pypi.org
    EuroPython: tickets.europython.eu
    TensorFlow: www.tensorflow.org
    Keras: keras.io
    PyCon US: us.pycon.org
    NumFOCUS: numfocus.org
    Python discussion forum (discuss.python.org): discuss.python.org
    Language Server Protocol: microsoft.github.io
    mypy: mypy-lang.org
    Pyright: github.com
    Pylance: marketplace.visualstudio.com
    Pyrefly: github.com
    ty: github.com
    Zuban: docs.zubanls.com
    Jedi: jedi.readthedocs.io
    GitHub: github.com
    PyOhio: www.pyohio.org

    Watch this episode on YouTube: youtube.com
    Episode #532 deep-dive: talkpython.fm/532
    Episode transcripts: talkpython.fm

    Theme Song: Developer Rap
    🥁 Served in a Flask 🎸: talkpython.fm/flasksong

    ---== Don't be a stranger ==---
    YouTube: youtube.com/@talkpython

    Bluesky: @talkpython.fm
    Mastodon: @[email protected]
    X.com: @talkpython

    Michael on Bluesky: @mkennedy.codes
    Michael on Mastodon: @[email protected]
    Michael on X.com: @mkennedy