{"podcast":{"title":"Python Bytes","slug":"python-bytes","podcast_index_feed_id":1021771,"rss_url":"https://pythonbytes.fm/episodes/rss","website_url":"https://pythonbytes.fm/","image_url":"https://cdn.pythonbytes.fm/static/img/podcast-theme-img_1400.jpg","author":"Michael Kennedy","episode_count":478,"summary":"Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.","last_synced_at":null,"page_url":"https://stenobird.com/podcast/python-bytes"},"episode":{"title":"#472 Monorepos","slug":"472-monorepos","published_at":"2026-03-09T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/472-monorepos","show_page_url":"https://stenobird.com/podcast/python-bytes","url":"https://pythonbytes.fm/episodes/show/472/monorepos","audio_url":"https://pythonbytes.fm/episodes/download/472/monorepos.mp3","summary":"Explore the practicalities of managing Python monorepos using uv workspaces and the evolving landscape of AI-driven development. The episode covers everything from structural dependency management to the hidden costs of replacing SaaS with agentic workflows.","meta_description":"Learn how to configure uv workspaces for Python monorepos, use the new FastAPI VS Code extension, and navigate the 'SaaS is dead' AI era.","key_points":["Main idea: Using uv workspaces requires a distinct top-level project name to avoid package name conflicts","Practical takeaway: Use the new FastAPI VS Code extension to navigate routes and functions directly via the command palette","Failure mode: Relying solely on AI for coding can bypass the essential learning of mental models and fundamental complexity management","Practical takeaway: Leverage AI as a conversational partner to understand why specific code patterns are preferred over just getting a working answer","Main idea: The shift toward agentic programming (like OpenClaw) may trade predictable SaaS subscription costs for unpredictable API and maintenance overhead"],"chapters":[{"start_ms":65000,"title":"Configuring uv Workspaces","summary":"Lessons learned from setting up a Python monorepo using uv, specifically handling top-level project names and dependency resolution."},{"start_ms":440000,"title":"Data Validation with Cattrs","summary":"A look at using cattrs for efficient structural validation and conversion between unstructured data and Python classes."},{"start_ms":720000,"title":"Learning to Code in the AI Age","summary":"How to use AI agents as tutors to build mental models and understand complex programming concepts without skipping the hard work."},{"start_ms":975000,"title":"FastAPI VS Code Extension","summary":"A walkthrough of the new official extension that allows developers to navigate API routes and function definitions via the command palette."},{"start_ms":1240000,"title":"Agentic Programming Tools","summary":"Discussing the potential of tools like Claude Code and the Agent Client Protocol for interacting with development agents."},{"start_ms":1615000,"title":"The Cost of 'SaaS is Dead'","summary":"A critique of the idea that AI agents replace all software subscriptions, highlighting the rising costs of API usage and manual maintenance."}],"topics":["Python","uv workspaces","monorepos","FastAPI","VS Code","AI coding agents","software engineering","cattrs"],"duration_seconds":1732,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/472-monorepos/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/472-monorepos.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]}}