#545: OWASP Top 10 (2025 List) for Python Devs

2026-04-16 20:24:50+00:00
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.

šŸŽ§ Listen to this episode

The Hidden Ways Anxiety Shows Up in Childhood

2026-04-15 12:00:00+00:00

Have a question for the Courtney?
Submit it at: phases.fm/questions
Q&A episodes are coming!

Dr. Courtney and Scott talk about the surprising ways that anxiety might show up in your child. They discuss:

  • What anxiety looks like in kids (and how it's different from adults).
  • The worry cycle that kids often get stuck in and how to recognize it.
  • How parents often respond to worry in ways that may make it worse for their kids.
  • Tools to actually teach your child science-backed tools to help them (and you!) cope with it.Ā 
  • How to recognize when therapy may be a helpful addition to your child's life.

Helpful Resources Discussed:

Go Noodle Mindfulness Videos on Youtube
https://www.gonoodle.com/

Guided Anxiety Book (CBT) for Kids
https://amzn.to/423a8NL

Anxiety Book to Help Parents
https://amzn.to/4mEHn3P

If you liked this episode, let us know if you want to hear more about anxiety!

phases.fm

šŸŽ§ Listen to this episode

996: 10 New CSS and HTML APIs

2026-04-15 11:00:00+00:00
Wes and Scott talk about the latest CSS and browser features, including the Grid Lines API for masonry layouts, HTML in Canvas, name-only container queries, CSS random, search-text styling, and more. Show Notes 00:00 Welcome to Syntax! 00:57 Grid Lines API for masonry-style layouts Introducing CSS Grid Lanes CSS Grid Lanes browser support 03:25 HTML in canvas and next-gen UI effects @jaffathecake @mattrothenberg 11:30 Name-only container queries for scoped styles Name-Only Containers: The Scoping We Needed 14:37 Brought to you by Sentry.io 15:34 Safari removes haptic feedback workaround 17:38 CSS random for dynamic values Rolling the Dice with CSS random() 18:49 Styling find-in-page with ::search-text 21:44 Sticky positioning now works in both axes @una 22:43 Multi-column CSS finally gets usable fixes Looking at New CSS Multi-Column Layout Wrapping Features 24:41 Border shape improvements and new design options @una MadCSS.com 27:09 Why MDN demos need to be better 28:24 Element-scoped view transitions for cleaner animations @bram.us Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

995: Next.js Vendor Lock-in No More

2026-04-13 11:00:00+00:00
In this episode, Scott and Wes sit down with Tim Neutkens and Jimmi Lai from the Next.js team to dig into the new Adapters API, what it takes to run Next.js across platforms like Cloudflare and Netlify, and how caching and infrastructure choices affect performance. They also go deep on TurboPack’s internals, why Next.js doesn’t run on Vite, and the evolution of bundling in the framework. Show Notes 00:00 Welcome to Syntax! 01:14 Introduction to Next.js and the Adapter Platform Next.js Across Platforms 02:23 The Adapters API: Features and Community Needs 04:46 Building and Testing the Adapters API 07:37 Infrastructure Requirements for Next.js Apps 11:38 Caching Strategies and Performance Optimization 13:29 The Role of Cache Components in Next.js 17:21 First Steps of Optimizations. 19:48 Blessed Adapters and Community Contributions 22:56 Future Directions and Runtime Support 25:05 Challenges with Different Runtimes and Debugging 26:45 Webpack vs. TurboPack: The Evolution of Next.js 29:45 Why Not Run on Vite? 32:47 Navigating Bundler Challenges 36:59 Building TurboPack: Lessons Learned 41:42 Incremental Compilation and Performance Episode with ByteDance’s Zack Jackson 43:50 Framework Comparisons and Performance Metrics 46:42 Exploring Future Directions for TurboPack 49:44 TurboPack’s Integration and API Development 52:50 Standardization in Bundler Tools 56:52 TurboPack’s Adoption and User Experience 57:49 Sick Picks + Shameless Plugs Sick Picks Tim: Acquired Podcast Jimmy: Hydrangea Coffee Shameless Plugs Jimmy: nextjs-across-platforms Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#544: Wheel Next + Packaging PEPs

2026-04-10 16:56:54+00:00
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 QuantSight 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 QuantSight and the NumPy and SciPy teams, and Charlie Marsh, founder of Astral and creator of uv, to dig into all of it.

šŸŽ§ Listen to this episode

Advice on Managing Projects & Making Python Classes Friendly

2026-04-10 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

Self-Care Habits That Actually Work for Parents

2026-04-08 12:00:00+00:00

Have a question for the Courtney?
Submit it at: phases.fm/questions
Q&A episodes are coming!

Courtney and Scott talk about what self care actually looks like when you’re parenting and already stretched thin. They talk about why self-care isn’t selfish (it’s how you stay regulated enough to show up), how it changes depending on what phase your kid is in, and how to find small pockets of time when your day already feels full.

Pick one small thing from this episode and try it this week.

phases.fm

šŸŽ§ Listen to this episode

994: AI Sucks At CSS

2026-04-08 11:00:00+00:00
In this potluck episode of Syntax, Wes and Scott answer your questions about AI struggles with CSS and design workflows, learning vs relying on AI, debugging web performance, beginner soldering setups, navigating AI-era job interviews, Figma dev mode, modern API choices, and more. Show Notes 00:00 Welcome to Syntax! 00:55 Why AI struggles with CSS and design workflows 10:50 How much AI should you use when learning to code? 18:41 Debugging performance: tools and team workflows Ep 585: Fundamentals Ɨ What Makes a Website Slow? Ep 874: Fast Apps - Easy Perf Wins Ep 897: Making Your App Feel Faster Than It Really Is Ep 972: These Things Make Your App Feel Like Crap on Mobile 23:52 Brought to you by Sentry.io 26:26 Beginner soldering setup and essential tools 29:54 Preparing for interviews without AI (while jobs require it) Brendan Falk on AI-native coding interviews 35:16 Thoughts on Figma dev mode and design workflows 39:20 Ice vs Thaw menu bar apps 40:27 Why AI isn’t pushing us toward better APIs 44:54 Vibe rules, skills, and shipping docs for agents vibe-rules Optimizing Content for Agents 54:44 Sick Picks + Shameless Plugs Sick Picks Scott: Jury Duty Wes: USB Cable Tester Shameless Plugs Syntax YouTube Channel Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

993: It’s Been A Hell Of Week

2026-04-06 11:00:00+00:00
Scott and Wes break down a chaotic week in dev news — the Claude Code source leak, a nasty Axios npm supply chain hack, and Railway’s private cache exposure — plus how to keep these nightmare scenarios from hitting your own projects. Show Notes 00:00 Welcome to Syntax! 00:55 Claude Code Leaked! Wes’ X Post Apple Source Code Video 05:42 Burning through Claude Code token limits. Reddit Thread 08:57 Axios hacked! Step Security pnpm Supply Chain Security pnpm minimumReleaseAge 16:13 Pretext blew up! Pretext.js Demos Wes’ Demo 27:24 Railway shared private cache. Railway Incident Report 31:54 Sick Picks & Shameless Plugs. Sick Picks Scott: Kindle Colorsoft Kids Wes: UGREEN 200W 8-Port GaN USB C Charger Block, Wyze Headphones Shameless Plugs Scott: Syntax on YouTube Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

My Child Has a Learning Disability, What Now?

2026-04-02 14:00:00+00:00

You've noticed the signs. Now what? In part two of this series, Courtney and Scott break down the actual steps you can take when you suspect your child has a learning disability. Who to call first, what to ask for, what evaluations look like, and what rights you have as a parent (more than you probably think).


In this episode:

  • Where to start when you suspect a learning disability
  • The difference between school evaluations and private evaluations
  • What to say to your child's teacher (and what to ask for)
  • Your legal rights as a parent and how to use them
  • What an IEP and 504 plan actually are and how to get one
  • How to advocate for your kid without feeling like you're fighting the system

šŸŽ§ Listen to this episode

#543: Deep Agents: LangChain's SDK for Agents That Plan and Delegate

2026-04-01 17:20:51+00:00
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.

šŸŽ§ Listen to this episode

992: Migrating Legacy Code Just Got Easier

2026-04-01 11:00:00+00:00
Wes and Scott talk about migrating large codebases with AI — how to plan framework and language moves, establish patterns, handle templating changes, test thoroughly, safely deploy, and more. Show Notes 00:00 Welcome to Syntax! 01:46 Why migrate to a new language or framework? 05:09 How to approach a large code migration 08:47 Establishing patterns before using AI 10:35 Moving from pug to JSX 12:06 Building a detailed migration plan 15:18 Testing every part of the application 15:51 Brought to you by Sentry.io 16:58 Deploying and catching issues with Sentry 19:12 Converting express requests to web standard requests 19:34 Other codebases that could benefit from AI migrations 21:36 Sick Picks + Shameless Plugs Sick Picks Scott: WisprFlow Wes: displayplacer Shameless Plugs Phases Podcast Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

991: Vite’s bet on Cloudflare (VOID Framework)

2026-03-30 11:00:00+00:00
Vite just launched Void, a fullstack JavaScript framework and cloud platform that bundles together routing, SSR, auth, an ORM, and nearly everything you’d expect from a modern meta-framework — all built on top of Cloudflare’s infrastructure. Scott, Wes, and CJ dig into whether Void is the Rails moment JavaScript has been waiting for, or just shiny Cloudflare lock-in with a bow on it. Show Notes 00:00 Welcome to Syntax! The Announcement 00:27 Laravel or Rails for JavaScript? 01:38 What is this big announcement? 04:36 It’s just Vercel for Cloudflare? 07:09 Database options. 09:37 Brought to you by Sentry.io. 10:01 Type safety. 12:09 What about RPC? 15:41 Component Loaders over Page Loaders. 18:23 Baked in authentication via Better Auth. 22:57 Lock-in. Unapologetically Cloudflare Evan’s X Post. 24:55 Is it lock-in? 32:40 Self-Cloudflare your own Void apps? Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Limitations in Human and Automated Code Review

2026-03-27 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

#542: Zensical - a modern static site generator

2026-03-25 20:55:16+00:00
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.

šŸŽ§ Listen to this episode

I Think My Child Has a Learning Disability

2026-03-25 12:00:00+00:00

Something feels off with your kid at school but you're not sure if you're overreacting or if it's something real. In this episode, Courtney and Scott walk through what to look for when your gut is telling you something more is going on. From the early signs at every age to understanding the difference between a developmental delay and a learning disability, this is the conversation most parents need but never get. It's about getting your kid the support they need so they stop feeling like something is wrong with them.


In this episode:

  • Why so many parents delay action (and why that's completely normal)
  • Signs worth paying attention to from preschool through middle school
  • The difference between "developing on their own timeline" and a true learning disability


If you're the parent lying awake wondering whether you should say something, you're not overreacting. Share this with someone who needs to hear that.Ā 

šŸŽ§ Listen to this episode

990: Vite Is Taking Over (Vite+)

2026-03-25 11:00:00+00:00
Wes, Scott, and CJ talk about Vite+, a unified JavaScript toolchain that combines linting, formatting, task running, monorepos, and more. They break down its evolution, open-source shift, performance gains, Node version management, and whether it can realistically replace today’s fragmented dev tooling. Show Notes 00:00 Welcome to Syntax! 00:54 What Vite+ is and what’s changed since launch 03:43 Why the ecosystem needs Vite+ 06:41 What Vite+ actually does for your workflow 10:18 Built-in Node version management 12:32 Type-aware linting with tsgolint and oxc 15:27 Brought to you by Sentry.io 16:28 Should config live inside vite.config? 22:56 Monorepos and task running in Vite+ 26:28 Task caching and faster builds 29:01 Final thoughts and current limitations Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

989: State of JS 2025

2026-03-23 11:00:00+00:00
Scott and Wes dig into the latest State of JS survey results, breaking down which JavaScript libraries, frameworks, and tools are rising, falling, or holding steady in the ever-shifting JS ecosystem. From front-end frameworks and meta-framework pain points to JavaScript runtimes, hosting services, and the growing role of AI tools in developer workflows, this one’s packed with takes, tier lists, and plenty of opinions. Show Notes 00:00 Welcome to Syntax! 01:06 JavaScript Features, not overly interesting. 02:15 JavaScript Libraries popularity and usage over time. 07:52 Library Tier List. 10:55 Library Ratios Over Time. 13:09 Other Front-End Frameworks. 15:24 Meta-framework Ratios Over Time. 19:34 Meta-Framework Pain Points. 21:57 Backend Frameworks. npm Trends express-vs-hono. 25:14 LLM Stack Suggestions. 27:54 Brought to you by Sentry.io. 30:37 Testing Frameworks. 33:15 Libraries Other Tools. 37:20 Utilities. npm Trends biome-vs-oxlint 40:53 JavaScript Runtimes. 45:04 Hosting Services. 51:39 AI Tools. 54:16 AI Code Generation. 55:04 Awards. 01:00:19 Sick Picks & Shameless Plugs. Sick Picks Scott: Anker MagSafe Charger Stand Wes: Battery-powered Heat Gun Shameless Plugs Scott: Syntax on YouTube Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Automate Exploratory Data Analysis & Invent Python Comprehensions

2026-03-20 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

#541: Monty - Python in Rust for AI

2026-03-19 19:38:50+00:00
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.

šŸŽ§ Listen to this episode

Growth Mindset for Kids: What Most Parents Get Wrong

2026-03-18 13:00:00+00:00

Praise effort, not talent. Research shows how you talk to your kids about failure shapes their entire mindset. Dr. Courtney breaks down 25+ years of Carol Dweck's research and what parents can actually do differently — from preschool through high school.

In this episode:

What growth vs. fixed mindset really means (and what it doesn't)
The 1998 study that changed how we think about praise
Why your view of failure matters more than your view of intelligence
How fixed mindset shows up at every age
Practical scripts and reframes you can use tonight
Special considerations for neurodivergent kids

The Girl who Never Made Mistakes
https://amzn.to/3Pht3kX

Your Fantastic Elastic Brain
https://amzn.to/3Pcwqd2

Rosie Revere, Engineer
https://amzn.to/4dsWVov

Mindset: The New Psychology of Success
https://amzn.to/4bvG0PD

šŸŽ§ Listen to this episode

988: Cloudflare’s Next.js Slop Fork

2026-03-18 11:00:00+00:00
Wes and Scott talk with Steve Faulkner about vinext, a Vite-powered Next.js fork. They dive into AI coding workflows, agent browsers, code quality, and what modern dev tooling looks like in an AI-first world. Show Notes 00:00 Welcome to Syntax! 02:01 Knowing how to use AI 02:31 The idea behind ā€œslop forkā€ vinext How we rebuilt Next.js with AI in one week 06:27 How to approach a project like this Super Whisper 07:53 Using markdown as a planning and thinking tool 12:35 Steve’s OpenCode setup 14:31 What agent browsers are and how they work agent-browser 15:34 Where agent browsers fall short 19:02 Why agents work best with tight feedback loops 21:23 Dealing with poor code quality from AI 23:54 Brought to you by Sentry.io 24:19 Searching for a reliable AI workflow 25:54 What about security? 28:46 When it makes sense to port a framework vs switch 32:03 What an AI-first programming language might look like 33:16 TypeScript in an AI-driven workflow 35:36 Cloudflare and improving developer experience 38:10 Being excited and uneasy about where AI is heading 39:06 Which industries AI disrupts next 41:29 Sick picks + shameless plugs Sick Picks Steve: IWC Pilot’s Watch Mark XX Shameless Plugs Steve: vinext Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

987: Remote Coding Agents

2026-03-16 11:00:00+00:00
Scott and Wes break down the world of remote coding agents — what they are, why you’d want one, and all the different ways you can run them, from Cursor Cloud and Claude Code to an old laptop sitting on your floor. They cover real-world use cases, environment setup, API key management, and the wild variety of interfaces that let agents work while you sleep. Show Notes 00:00 Welcome to Syntax! 03:14 Introduction to Remote Coding Agents 05:32 Practical Examples of Remote Agents 05:34 Website data grunt work. 07:48 Research assistant 08:57 Travel agent… agent 09:57 Where and When Remote Agents Run 10:43 Brought to you by Sentry.io 13:31 Where Remote Agents Run 19:14 CLI and User Interfaces for Remote Agents 24:53 Remote Development Environments 31:21 DIY Agents and Custom Solutions 36:09 The environment 38:08 Managing API Keys and Access 41:02 Web search Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#540: Modern Python monorepo with uv and prek

2026-03-13 21:17:50+00:00
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.

šŸŽ§ Listen to this episode

Crafting and Editing In-Depth Tutorials at Real Python

2026-03-13 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

5 ADHD Parenting Hacks That Actually Work

2026-03-11 12:00:00+00:00

Have a question for the Courtney?
Submit it at: phases.fm/questions
Q&A episodes are coming!

If traditional parenting advice isn't landing with your kid, you're not alone — and you're not doing it wrong. In this episode, Courtney and Scott break down five practical, science-backed strategies for parenting a child with ADHD. These aren't about fixing your child — they're about working with how their brain is wired. From rethinking how you give instructions to reframing what "good behavior" actually looks like, these small shifts can make a real difference. Pick one, try it this week,.


phases.fm

šŸŽ§ Listen to this episode

986: Does Code Quality Matter Anymore?

2026-03-11 11:00:00+00:00
In this potluck episode, Wes and Scott answer your questions about popover navigation patterns, the Vibrate API on iOS, whether code quality still matters in the AI era, Wes’s evolving Obsidian second-brain setup, where to start with modern full-stack JavaScript, and more! Show Notes 00:00 Welcome to Syntax! 01:02 Using display none with popover and hamburger navigation 03:37 Vercel on iOS and experimenting with the Vibrate API 05:47 Does code quality still matter in the AI age? 11:08 Wes’ second brain update and Obsidian workflow QMD 19:57 Brought to you by Sentry.io 20:21 Supporting older browsers and missing out on modern web features 23:32 iPad browsing quirks and dealing with outdated Safari 28:26 What to do when you encounter a badly built or inaccessible website 33:37 Is the Effect TypeScript library worth the learning curve? 37:04 Where to start with modern full-stack JavaScript 43:39 Are column grid frameworks still relevant with modern CSS? Graffiti 49:54 Sick Picks + Shameless Plugs Sick Picks Scott: AVerMedia Video Capture Card Wes: Power Bar Extension Cord Shameless Plugs Phases Podcast Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

985: Stop putting secrets in .env

2026-03-09 11:00:00+00:00
Scott and Wes are joined by Phil Miller and Theo Ephraim to talk about Varlock, a new approach to environment variables that adds schemas, validation, and security to the humble .env file. They dig into the risks of traditional env workflows, how schema-driven configs improve DX, and how tools like Varlock help manage secrets safely across frameworks, CI, and AI-powered workflows. Show Notes 00:00 Welcome to Syntax! 03:15 The Risks of .env Files 04:58 Introducing Varlock: A Unified Solution 06:56 Schema-Driven Environment Variables 11:47 Integrating with Various Frameworks 14:08 Brought to you by Sentry.io 14:32 Cross-Language Compatibility 17:50 Best Practices for Environment Variables 21:11 Security Features of Varlock 25:02 AI Integration and Environment Variables 29:12 Introduction to Varlock and GitHub Actions 32:45 Secrets Management and Best Practices 36:09 The Future of Varlock and Open Source 38:36 Sick Picks + Shameless Plugs Sick Picks Phil: Bela.io Theo: Wonder Man Shameless Plugs Phil: nauticalartifacts Theo: howtostore.food Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#539: Catching up with the Python Typing Council

2026-03-06 16:58:04+00:00
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.

šŸŽ§ Listen to this episode

10 Psychology Based Parenting Tips For 2026

2026-03-04 13:00:00+00:00

ā“ Got a question for the doctor?
Submit it at: phases.fm/questions
Q&A episodes are coming!

In the very first episode of Phases, Dr. Courtney Tolinski, a licensed clinical and educational psychologist with over 15 years working with families, sits down with her husband Scott to share their top 10 parenting tips for 2026. Grounded in child development, emotional regulation, and attachment theory, these tips cover how we communicate with our kids, how we manage our own stress as parents, and how to build connection through everyday moments. Courtney and Scott get real about what this looks like in their own home, from kitchen dance parties and 3D printer adventures to a Disney trip cancelled by a hurricane. If you're looking for judgment-free, psychology-backed parenting advice that actually feels doable, start here. Pick one tip that hits home and build from there.

phases.fm

šŸŽ§ Listen to this episode

984: How to Make a DOM Library Render Anything w/ Paolo Ricciuti

2026-03-04 12:00:00+00:00
Wes and Scott talk with Paolo Ricciuti about Svelte custom renderers and how Svelte actually talks to the DOM. They dig into compiler internals, CSS handling, native bridges, and the realities of maintaining ambitious open source tooling. Show Notes 00:00 Welcome to Syntax! March MadCSS 01:44 Paolo’s role at Mainmatter and his work on Svelte custom renderers 02:52 Why Paolo chose Svelte Why I choose Svelte Shift Dev 2019: ā€œRethinking Reactivityā€ 05:16 From Svelte ambassador to working on the project 07:45 How custom renderers change what Svelte can target 10:10 How Svelte uses the DOM and why that makes custom renderers tricky 20:32 What Lynx provides and how it differs from a web view 24:18 Brought to you by Sentry.io 35:56 Using Svelte with CSS outside the browser 39:09 The timeline and current state of the Lynx app 44:51 Sick Picks + Shameless Plugs Sick Picks Paolo: Opencode Shameless Plugs Paolo: Svelte Custom Renderers | TCMP Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

983: Why I Chose Electron Over Native (And I’d Do It Again)

2026-03-02 12:00:00+00:00
Wes and Scott talk about building v_framer, Scott’s custom multi-source video recording app, and why Electron beat Tauri and native APIs for the job. They dig into MKV vs WebM, crash-proof recording, licensing with Stripe and Keygen, auto-updates, and the real challenges of shipping a polished desktop app. Show Notes 00:00 Welcome to Syntax! March MadCSS 02:28 Why screen recording apps are so frustrating 07:14 The requirements behind Scott’s app, v_framer 09:47 Tauri, WKWebView, and blurry screen recording headaches 13:00 Why switching to Electron was a game changer 14:02 Electrobun and the hybrid desktop experiment 16:29 Browser-based capture vs native APIs 18:50 Brought to you by Sentry.io 22:32 Notarization, certificates, and shipping a Mac app 24:52 One-time purchases, trials, and selling desktop software 26:37 Self-hosting Keygen for license keys 30:27 A scrappy Google Sheets-powered waitlist 31:56 Keyboard shortcuts, FPS locks, and app customization 34:50 CI/CD and painless auto-updates with Electron Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#538: Python in Digital Humanities

2026-02-28 21:28:36+00:00
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.

šŸŽ§ Listen to this episode

Overcoming Testing Obstacles With Python's Mock Object Library

2026-02-27 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

982: Bots Are Ruining the Internet

2026-02-25 12:00:00+00:00
Wes and Scott talk about the latest dev news: Node enabling Temporal by default, OpenAI acquiring OpenClaw, TypeScript 6, new TanStack and Deno releases, the explosion of AI agent platforms, and more. Courtney Tolinski's Podcast Phases: A Parenting Podcast https://phases.fm/ Show Notes 00:00 Welcome to Syntax! 01:11 Brought to you by Sentry.io 02:40 Node.js enables Temporal by default Enable Temporal by default 04:08 OpenClaw acquired by OpenAI OpenClaw, OpenAI and the future 09:36 Bots are taking over the internet Wes’ tweet 15:30 TypeScript 6 Beta Announcing TypeScript 6.0 Beta 17:00 TanStack Hotkeys for type-safe shortcuts TanStack Hotkeys 18:05 Components will kill webpages Components Will Kill Pages 19:39 Is Google Translate just an LLM? Viridian’s tweet 23:29 Shaders.com 26:49 Voxtral Mini Realtime Voxtral Realtime Demo 29:51 Deno launches Sandboxes Introducing Deno Sandbox 32:39 Oz by Warp.dev 38:10 Augment Code Intent 40:10 Sick Picks + Shameless Plugs Sick Picks Scott: Samsung Remote Wes: Ice Shameless Plugs Syntax YouTube Channel Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Phases: A Parenting podcast Preview

2026-02-24 22:23:15+00:00

Welcome to Phases


We're Courtney and Scott — a married couple diving into the messy, beautiful, ever-changing world of raising kids and growing up alongside them.


Courtney brings her PhD in educational psychology. Scott brings… questions (and experience co-hosting Syntax.fm). Together, we're exploring family psychology, human development, and parenting — judgment-free.


What to Expect

  • Real conversations about child development stages, behavior, emotions, and the stuff no one warns you about
  • Research-backed insights made actually useful — no textbook lectures
  • Relationship & identity — how parenting changes you, your marriage, and your sense of self
  • Listener questions — bring your chaos, we'll bring the context
  • Zero judgment — just honest talk from two parents figuring it out in real time


Coming Soon

  • 10 Parenting Tips for 2026 — what's actually working right now
  • 5 Hacks for ADHD — practical strategies from both sides of the diagnosis
  • Self-Care for Parents — why it's not selfish and how to actually do it
  • AI and Homework — how to guide kids in using tech as a tool, not a crutch
  • The Anatomy of a Meltdown — what's happening in their brain (and yours)
  • …and more


phases.fm
https://www.youtube.com/@phasesfm

Subscribe wherever you listen. New episodes dropping soon.

šŸŽ§ Listen to this episode

981: Browsers Are Finally Catching Up (Interop 2026)

2026-02-23 12:00:00+00:00
Scott and Wes unpack Interop 2026 and the browser features finally aligning across engines, from container style queries and anchor positioning to scroll-driven animations and view transitions. They break down what it all means for day-to-day devs and how close we really are to a fully interoperable web. Show Notes 00:00 Welcome to Syntax! 00:21 What is Interop? Interop GitHub. 02:44 Container Style Queries. 09:32 Brought to you by Sentry.io. 09:57 Anchor Positioning. 12:01 CSS attr(). 15:40 CSS Contrast-color. 19:10 CSS Zoom. 21:36 CSS Custom Highlight API. 24:02 Dialogs and Popovers. 25:44 Fetch Uploads and Ranges. 27:48 IndexedDB. 28:25 JSPI for Wasm. 29:05 Media Pseudo-Classes. 30:00 Navigation API. 31:53 Scoped Custom Element Registries. 32:40 Scroll-Driven Animations. 33:30 Scroll Snap. 36:50 CSS Shape(). 38:25 View Transitions. 41:32 Web Compat. 42:29 WebRTC Improvements. 43:44 WebTransport. 45:44 Investigation Efforts. 46:25 JPEG XL 48:46 Mobile Testing. 49:20 WebVTT. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#537: Datastar: Modern web dev, simplified

2026-02-21 20:36:58+00:00
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.

šŸŽ§ Listen to this episode

Exploring MCP Apps & Adding Interactive UIs to Clients

2026-02-20 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

980: AI Coding Explained

2026-02-18 12:00:00+00:00
Wes and Scott talk about the state of AI coding in 2026—from editors and models to agents, skills, slash commands, MCPs, and more. They unpack what these things actually do, how they overlap, and how to use them effectively without overcomplicating your setup. Show Notes 00:00 Welcome to Syntax! 01:39 The tools: editors, terminals, GUIs 05:27 Wes’ and Scott’s current AI setups 13:17 Picking the right model 18:58 How exactly do agents work? 22:32 Subagents and parallel workflows 24:29 Brought to you by Sentry.io 24:54 What goes in agents.md (and what doesn’t) 26:47 Skills vs agents Skills Superpowers 34:03 Slash commands as reusable prompts 36:02 Hooks and keeping your code from going off the rails 38:00 Plugins and bundling your setup 39:24 What MCP is and why it’s powerful 40:54 Cloud agents and running jobs remotely 43:47 Choosing the right AI tool 47:41 Sick Picks + Shameless Plugs Sick Picks Scott: ULTRALOQ Bolt Fingerprint WiFi Smart Lock Wes: St. Denis Medical Shameless Plugs Syntax YouTube Channel Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

979: WebMCP: New Standard to Expose Your Apps to AI

2026-02-16 12:00:00+00:00
Scott and Wes unpack WebMCP, a new standard that lets AI interact with websites through structured tools instead of slow, bot-style clicking. They demo it, debate imperative vs declarative APIs, and share their hottest take: this might be the web’s real AI moment. Show Notes 00:00 Welcome to Syntax! 00:16 Introduction to WebMCP 01:07 Understanding WebMCP Functionality. 03:06 Interacting with AI through WebMCP. 06:49 WebMCP browser integration. 08:25 Brought to you by Sentry.io. 08:49 Benefits of WebMCP. 11:51 Token efficiency. 13:02 My biggest questions. 14:13 My take on this tech. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Running Local LLMs With Ollama and Connecting With Python

2026-02-13 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

978: Should A New Coder Use AI?

2026-02-11 12:00:00+00:00
Wes and Scott answer your questions about AI agents, learning to code with AI, pagination patterns, skilling up from outdated tech stacks, balancing side projects with family life, real-world hacking attempts, and more! Show Notes 00:00 Welcome to Syntax! 01:39 Are devs really running multiple AI agents at once? Scott’s Tweet 09:41 Brought to you by Sentry.io 12:45 What is pagination and why do websites use it? 18:17 Should beginners use AI while learning to code? 30:24 The real-world skills CS degrees don’t teach you 35:59 Someone tried to hack Syntax 38:12 How Wes and Scott became co-hosts 42:00 Moving from junior to mid-level when your skills are outdated 45:42 How do you balance time for side projects, life, and family 52:45 Building a ChatGPT-style RAG search for your resume 56:15 Why Chad Whitacre videos were on the Syntax YouTube channel Chad’s YouTube Channel 58:44 Sick Picks + Shameless Plugs Sick Picks Scott: Trmnl Wes: RYOBI Soldering Iron Shameless Plugs Syntax YouTube Channel Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#536: Fly inside FastAPI Cloud

2026-02-10 23:17:41+00:00
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.

šŸŽ§ Listen to this episode

977: We built a CSS Challenge platform

2026-02-09 12:00:00+00:00
Scott and Wes break down how they built SynHax, the real-time CSS Battle app powering the upcoming Mad CSS tournament. From SvelteKit and Zero to diffing algorithms, sync conflicts, and a last-minute hackweek glow-up, this one’s a deep dive into shipping ambitious web apps fast. Show Notes 00:00 Welcome to Syntax! 00:50 March Mad CSS Tournament. 03:19 Brought to you by Sentry.io. 03:59 What the heck is a CSS Battle? 05:34 The tech stack. 06:30 Svelte Kit. 06:44 Zero Sync. Zero Docs Zero Svelte. 07:32 Drizzle. 07:58 Supabase. 08:23 Graffiti. 10:45 Sync Server. 12:10 Cloudflare Workers. 12:23 Local File System. 13:26 How Zero Works. 13:48 Zero Sync Client. 15:39 API server. 19:34 Dealing with states and conflicts. 24:25 The Hackweek Project. 25:29 The Diffing Algorithm. 35:22 The bugs. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Improving Your GitHub Developer Experience

2026-02-06 12:00:00+00:00
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".

šŸŽ§ Listen to this episode

976: Pi - The AI Harness That Powers OpenClaw W/ Armin Ronacher & Mario Zechner

2026-02-04 12:00:00+00:00
Wes and Scott talk with Armin Ronacher and Mario Zechner about PI, a minimalist agent harness powering tools like OpenClaw. They unpack why Bash is ā€œall you need,ā€ the risks of agents, workflow adaptability, and where AI coding agents are actually headed. Show Notes 00:00 Welcome to Syntax! 03:28 What is Pi, and why does it matter? OpenClaw 05:54 What do we actually mean by ā€œagentsā€? 11:04 Prompt injection: how LLMs get tricked 14:19 Is Claude Cowork actually secure? 22:01 How Armin and Mario use agents day to day 26:37 Brought to you by Sentry.io 27:25 Memory and search: teaching agents to remember 33:04 Do coding agents even need memory? 34:36 ā€œBash is all you needā€ 37:21 Adding power: how agents learn new tricks 47:02 Tools and models Armin and Mario are using right now 54:15 Sick picks + shameless plugs Sick Picks Mario: Cards for Ukraine Armin: Pro-Ject Audio Turntable Shameless Plugs Armin: Thorsten Ball Newsletter Simon Willison Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

975: What’s Missing From the Web Platform?

2026-02-02 12:00:00+00:00
Scott and Wes run through their wishlist for the web platform, digging into the UI primitives, DOM APIs, and browser features they wish existed (or didn’t suck). From better form controls and drag-and-drop to native reactivity, CSS ideas, and future-facing APIs, it’s a big-picture chat on what the web could be. Show Notes 00:00 Welcome to Syntax! Wes Tweet 00:39 Exploring What’s Missing from the Web Platform 02:26 Enhancing DOM Primitives for Better User Experience 03:59 Multi-select + Combobox. Open-UI 04:49 Date Picker. Thibault Denis Tweet 07:18 Tabs. 08:01 Image + File Upload. 09:08 Toggles. 10:23 Native Drag and Drop that doesn’t suck. 12:03 Syntax wishlist. 12:06 Type Annotations. 15:07 Pipe Operator. 16:33 APIs We Wish to See on the Web 18:31 Brought to you by Sentry.io 19:51 Identity. 21:33 getElementByText() 24:09 Native Reactive DOM. Templating in JavaScript. 24:48 Sync Protocol. 25:52 Virtualization that doesn’t suck. 27:40 Put, Patch, and Delete on forms. Ollie Williams Tweet SnorklTV Tweet 28:55 Text metrics: get bounding box of individual characters. 29:42 Lower Level Connections. 29:50 Bluetooth API. 30:47 Sockets. 31:29 NFC + RFID. 34:34 Things we want in CSS. 34:40 Specify transition speed. 35:24 CSS Strict Mode. 36:25 Safari moving to Chromium. 36:37 The Need for Diverse Browser Engines 37:48 AI Access. 44:49 Other APIs 46:59 Qwen TTS 48:07 Sick Picks + Shameless Plugs Sick Picks Scott: Monarch Wes: Slonik Headlamp Shameless Plugs Scott: Syntax on YouTube Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Testing Python Code for Scalability & What's New in pandas 3.0

2026-01-30 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

974: Clawdbot (Moltbot), Agents and the Age of Personal Software

2026-01-28 12:00:00+00:00
Wes and Scott talk about building hyper-specific personal software with AI. They explore personal agents, home automation, JSON-as-a-database, and how LLMs unlock fast, custom apps that reduce friction and replace bloated SaaS. Show Notes 00:00 Welcome to Syntax! 01:53 What is personal software (and why it matters) 04:49 Using AI agents to build hyper-specific apps for yourself Clawdbot ClawdHub 13:43 Supercharging your dev workflow with Tailscale 19:06 Privacy when working with LLMs MLX-Audio 21:39 Brought to you by Sentry.io 22:21 Real-world personal app ideas 39:14 Sick Picks + Shameless Plugs Sick Picks Scott: FTPManager Wes: Roku Streaming Stick Shameless Plugs Syntax YouTube Channel Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

973: The Web’s Next Form: MCP UI (with Kent C. Dodds)

2026-01-26 12:00:00+00:00
Scott and Wes sit down with Kent C. Dodds to break down MCP, context engineering, and what it really takes to build effective AI-powered tools. They dig into practical examples, UI patterns, performance tradeoffs, and whether the future of the web lives in chat or the browser. Show Notes 00:00 Welcome to Syntax! 00:44 Introduction to Kent C. Dodds 02:44 What is MCP? 03:28 Context Engineering in AI 04:49 Practical Examples of MCP 06:33 Challenges with Context Bloat 08:08 Brought to you by Sentry.io 09:37 Why not give AI API access directly? 12:28 How is an MCP different from Skills 14:58 MCP optimizations and efficiency levers 16:24 MCP UI and Its Importance 19:18 Where are we at today with MCP 24:06 What is the development flow for building MCP servers? 27:17 Building out an MCP UI. 29:29 Returning HTML, when to render. 36:17 Calling tools from your UI 37:25 What is Goose? 38:42 Are browsers cooked? Is everything via chat? 43:25 Remix3 47:21 Sick Picks & Shameless Plugs Sick Picks Kent: OneWheel Shameless Plugs Kent: http://EpicAI.pro,http://EpicWeb.dev,http://EpicReact.dev Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#535: PyView: Real-time Python Web Apps

2026-01-23 19:29:41+00:00
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.

šŸŽ§ Listen to this episode

Continuing to Improve the Learning Experience at Real Python

2026-01-23 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

972: These Things Make Your App Feel Like Crap on Mobile

2026-01-21 12:00:00+00:00
Wes and Scott talk about why mobile web apps often feel ā€œjankyā€ compared to native—and how to fix it. They cover input zooming, accidental horizontal scroll, pointer/user-select quirks, frame rate consistency, full-page refreshes, and more. Show Notes 00:00 Welcome to Syntax! 01:11 Brought to you by Sentry.io 02:57 Zooming inputs 06:11 Horizontal scrolling 08:49 Proper use of pointer-events: none, and user-select: none 11:27 Allowing zoom on everything 16:37 Cleaning up the ā€œjankā€ 19:48 Full page refresh 24:05 Slow loading times 29:50 Cumulative layout shift 32:47 Address bars and viewport units Dynamic Viewport Units 35:34 Full-width scroll traps Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

971: Stackoverflow and Firefox are Dead?

2026-01-19 12:00:00+00:00
Is Stack Overflow actually dying, and what does that mean in an AI-driven dev world? Scott and Wes break down the latest web dev news, from Firefox’s AI crossroads and Apple’s browser engine changes to new tools, docs, and spicy browser updates. Show Notes 00:00 Welcome to Syntax! 02:36 Stack Overflow is Officially Dead 05:40 AI’s Impact on Software Development 07:56 Brought to you by Sentry.io 08:20 Micro QuickJS for Embedded Systems 13:03 Open Workers: A Cloudflare Alternative 20:09 React Aria has new Docs 24:12 Firefox and the AI Dilemma The Mozilla Announcement 31:11 Apple’s Browser Engine Changes Using alternative browser engines in Japan. 36:12 Fractured JSON for Better Readability 37:45 New Chrome Permissions Dialogue Chrome Network Access 41:15 Sick Picks & Shameless Plugs Sick Picks Scott: TRMNL E-Ink Display Wes: ACEBOTT Shameless Plugs Scott: Syntax on YouTube Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Considering Fast and Slow in Python Programming

2026-01-16 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

970: Why Did Anthropic Buy Bun?

2026-01-14 12:00:00+00:00
Wes and Scott answer your questions about whether Git GUIs beat the terminal, balancing accessibility with experimental web projects, blocking malicious traffic, smart home setups, why Anthropic bought Bun, navigating tricky team dynamics, and more! Show Notes 00:00 Welcome to Syntax! 00:51 Why did Anthropic buy Bun? 07:33 Should you use Git GUIs or the terminal? lazygit 12:54 How to make better coding videos v_framer Recut DaVinci Resolve Shure MV7+ 20:31 How do you handle a difficult dev teammate? 24:16 Brought to you by Sentry.io 24:41 Creative and experimental code vs accessible code Using luminance instead of lightness Color contrast checker Auto color 31:51 Smart home setups we actually use 35:37 How do you block bad bots and ISPs? Bad ASN list 38:02 What is SAP UI and why is it everywhere? SAP UI5 Demo Kit 41:28 Sick Picks + Shameless Plugs Sick Picks Scott: Inside Archaeology Wes: ProfessorBoots Shameless Plugs Syntax YouTube Channel Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#534: diskcache: Your secret Python perf weapon

2026-01-13 05:32:21+00:00
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.

šŸŽ§ Listen to this episode

969: This guy is nuts (TypeScript Doom)

2026-01-12 12:00:00+00:00
Scott and Wes sit down with Dimitri Mitropoulos to explore the wild edges of TypeScript—from running Doom in the type system to building tools like Typeslayer. They dig into Turing-complete types, performance limits, and what the future might hold for TypeScript and programming languages as a whole. Show Notes 00:00 Welcome to Syntax! 00:27 Dimitri Mitropoulos Introduction 01:29 What is Doom in TypeScript? 03:10 TypeScript Types and Turing Completeness 04:06 Project Overview and Challenges 04:57 ASCII Art and Visual Representation 06:50 Performance Issues with TypeScript 09:27 Brought to you by Sentry.io 09:51 Typeslayer Tool Introduction 16:19 Building in Tauri 20:54 Challenges around packaging 24:03 Future of TypeScript and AI 27:40 Is the Go-based compiler significantly faster? TSperf 30:23 Should there be something to follow Typescript? 36:27 Staying up to date with WASM. 37:08 SquiggleConf Overview 38:26 Hosting a conference 40:45 What are your thoughts on Zig? 45:07 Vibe coding as an end goal 50:01 Sick Picks & Shameless Plugs Sick Picks Dimitri: pullfrog Shameless Plugs Dimitri: Michigan TypeScript on YouTube Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Coding Python With Confidence: Beginners Live Course Participants

2026-01-09 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

968: Habits and Changes We Want to Make in 2026

2026-01-07 12:00:00+00:00
Wes and Scott talk about setting realistic goals for the new year, building habits through small, sustainable changes, creating systems that actually stick, and why incremental progress beats big resolutions every time. Show Notes 00:00 Welcome to Syntax! 00:26 Wes: Stand more 06:55 Wes: Learn to wake up early 10:04 Scott: Embrace daily TODOs Tweek 14:18 Brought to you by Sentry.io 14:43 Wes: Better email management 19:14 Scott: Become more minimal 22:13 Wes: Get faster at typing 26:55 Scott: Listen to more self-help books 30:18 Scott: Track long-term habits 31:36 Scott (and Wes): Ship more things Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#533: Web Frameworks in Prod by Their Creators

2026-01-05 08:00:00+00:00
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.

šŸŽ§ Listen to this episode

PyCoder's Weekly 2025 Top Articles & Hidden Gems

2026-01-02 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

967: What’s Going to Happen in Web Dev During 2026

2025-12-31 12:00:00+00:00
Wes and Scott talk about their bold predictions for web development in 2026, from WebGPU-powered design and modern CSS breakthroughs to JavaScript standards, AI-driven tooling, security risks, the future of frameworks, workflows, and more! Show Notes 00:00 Welcome to Syntax! 00:49 WebGPU and 3D experiences will finally take off Lando Norris 01:30 Web design will make a comeback Raycast shaders.com 04:03 Light mode returns (yes, really) 07:06 Modern CSS standards are about to have a huge year CSS Wrapped Graffiti 13:15 Will the Temporal API finally ship everywhere in 2026? 14:18 The rise of the standard stack 16:18 Are we headed toward standardized RPC? 19:41 What’s next (and what’s not) for React 21:07 Why we’ll see more security failures in web dev 22:35 SvelteKit 3 lands in 2026 22:53 Where developer tooling is headed next Oxc Biome 26:44 More big acquisitions Anthropic Bun 28:02 2026: the year of durable compute 30:57 Frameworks will matter less as AI gets better 33:34 End-to-end AI workflows become the norm 36:04 Brought to you by Sentry.io 37:21 Personalized software for everyday people 39:11 MCP and MCP UI will pop 42:24 Developer skills will fall off 46:20 Crappy software will continue Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#532: 2025 Python Year in Review

2025-12-29 08:00:00+00:00
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.

šŸŽ§ Listen to this episode

966: A Look Back at Web Dev in 2025

2025-12-24 12:00:00+00:00
Wes and Scott revisit their 2025 web development predictions, grading hits and misses across AI, browsers, frameworks, CSS, and tooling. From Temporal and AI coding agents to React, Vite, and vanilla CSS, they reflect on what actually changed, what stalled, and what it all means heading into 2026. Show Notes 00:00 Welcome to Syntax! 866: 2025 Web Development Predictions 01:26 Temporal API will ship in the browser 03:33 On-device AI becomes common 06:14 WebGPU unlocks fast local machine learning TypeGPU 07:10 Models will plateau 10:32 Is there an actual use case for video and photo gen AI? 13:27 Text to UI tools get really good 16:25 Framework choice will matter less 18:53 Web components in Standard Stack, Web Awesome takes off 21:37 AI browsers and Copilot Workspace-style tools will become normal 22:56 AI browsera will become inevitable, OpenAI will launch a browser 27:51 Relative color will feel fully ā€œsafe to useā€ 29:02 Vanilla CSS will make a comeback 30:33 Brought to you by Sentry.io 30:58 CSS mixins and functions spec solidifies CSS Custom Functions and Mixins Module Level 1 33:25 Container style queries will ship everywhere CSS if statements 35:40 Vertical centering jokes will stubbornly persist 36:20 VS Code will reach feature parity with Cursor 38:47 More VS Code forks will appear 39:46 React Compiler drops Babel 40:34 React server components will pop 42:17 Remix re-emerges as something new 43:17 React Native will have its time 44:21 TanStack Start and Tanstack will pop 45:46 SvelteKit gets more granular data loading 46:06 Local first apps will take off 46:43 Bun keeps doing ā€œwild but lovedā€ non-standard features, Bun will launch a platform-as-a-service 48:22 Vite stays king 51:07 Laravel will release a CMS 52:44 Sick Picks + Shameless Plugs Sick Picks Scott: DARKBEAM Flashlight UV Black Light Wes: WOOZOO Fan Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

965: Baseline 2025 Features web gained in 2025

2025-12-22 12:00:00+00:00
Scott and Wes break down the biggest web platform features that reached Baseline in 2025, separating the genuinely useful APIs from the niche and forgettable ones. From same-document view transitions and the Popover API to Promise.try, content-visibility, and modern CSS goodies, they share what’s actually ready to use today. Show Notes 00:00 Welcome to Syntax! 01:37 24 new web APIs that reached baseline in 2025. 01:49 Same-document view transitions for single-page applications. 05:28 abs() 08:22 Brought to you by Sentry.io. 09:20 JSON Module Scripts. 10:10 Popover API. 13:07 Base64 to UInt8Array. Better Binary Batter Mixing 16:11 @starting-style Scott’s A CSS Only Accordion with

Scott’s Mobile Nav 17:39 allow-discrete 21:31 Promise.try 22:51 content-visibility Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Moving Towards Spec-Driven Development

2025-12-19 12:00:00+00:00
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.

šŸŽ§ Listen to this episode

#531: Talk Python in Production

2025-12-18 08:00:00+00:00
Have you ever thought about getting your small product into production, but are worried about the cost of the big cloud providers? Or maybe you think your current cloud service is over-architected and costing you too much? Well, in this episode, we interview Michael Kennedy, author of "Talk Python in Production," a new book that guides you through deploying web apps at scale with right-sized engineering.

šŸŽ§ Listen to this episode

964: Markdown as a CMS is a bad idea

2025-12-17 12:00:00+00:00
In this potluck episode of Syntax, Wes and Scott answer your questions about keyboard shortcuts, choosing frameworks in the age of AI, markdown vs CMSs, backup strategies, moving countries for work, staying relevant as a developer, and more! Show Notes 00:00 Welcome to Syntax! 02:28 Do keyboard shortcuts actually improve productivity? Hyperkey 08:41 What is Error Lens, and why use it? Ep 956: Should I Keep Using WordPress? 11:44 How Scott is using a Svelte 5 service worker 14:52 Does tech stack choice still matter with AI coding? Ep 951: A first look at Remix 3 20:15 What stack should you choose for a greenfield SaaS? 22:38 What’s the right stack for a band website? 28:24 Is moving countries for work worth the tradeoff? 34:59 Brought to you by Sentry.io 36:16 How should you manage commits with AI tools? 40:50 Is programming still a good career in the AI era? 47:03 How should you back up large files and media? Ep 949: Web Dev HORROR Stories + Spooky Trivia! (Spooky Stories Pt. 1) Ep 962: The Home Server / Synology Show 53:29 What backup setup works for small teams and clients? 55:14 How should you store sensitive files safely? 58:07 Sick Picks + Shameless Plugs Sick Picks Scott: Philips LED Ultra Definition Wes: LEGO Builder App Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

963: Hardware Hacking with Matt Brown

2025-12-15 12:00:00+00:00
Scott and Wes chat with YouTuber and security consultant Matt Brown about breaking into IoT devices, extracting firmware, and decoding the hidden tech inside everyday gadgets. Matt shares his methods, the legal boundaries, and the wild stories behind his most interesting hacks. Show Notes 00:00 Welcome to Syntax! 01:21 Curiosity in Hacking 03:28 Understanding IoT Devices 07:15 Brought to you by Sentry.io. 07:40 Linux vs Microcontrollers 10:11 UART Console Access 13:56 Firmware Extraction Techniques 14:19 Guessing Usernames and Passwords 19:22 Extracting Password Hashes 23:15 Legal Considerations in Hacking 30:06 Where does the inspiration come from? 31:20 Using Logic Analyzers 37:45 CAN Protocol in Automotive 45:42 Influence of Lewis Rossman 54:05 Sick Picks & Shameless Plugs Sick Picks Matt: Key Person of Influence Shameless Plugs Matt:Matt Brown on YouTube, Brown Fine Security Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#530: anywidget: Jupyter Widgets made easy

2025-12-13 08:00:00+00:00
For years, building interactive widgets in Python notebooks meant wrestling with toolchains, platform quirks, and a mountain of JavaScript machinery. Most developers took one look and backed away slowly. Trevor Manz decided that barrier did not need to exist. His idea was simple: give Python users just enough JavaScript to unlock the web’s interactivity, without dragging along the rest of the web ecosystem. That idea became anywidget, and it is quickly becoming the quiet connective tissue of modern interactive computing. Today we dig into how it works, why it has taken off, and how it might change the way we explore data.

šŸŽ§ Listen to this episode

962: The Home Server / Synology Show

2025-12-10 12:00:00+00:00
Wes and Scott talk about their evolving home-server setups—Synology rigs, Mac minis, Docker vs. VMs, media servers, backups, Cloudflare Tunnels, and the real-world pros and cons of running your own hardware. Show Notes 00:00 Welcome to Syntax! 01:35 Why use a home server? 07:29 Apps for home servers 16:23 Home server hardware 18:27 Brought to you by Sentry.io 20:45 VMs vs containers and choosing the right software 25:53 How to expose services to the internet safely 30:38 Securing access to your server Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

961: Keeping Up With The Fast and Furious Web

2025-12-08 12:00:00+00:00
Scott and CJ go live from JS Nation NYC to talk about how developers can actually stay current without drowning in the constant churn of new tools and trends. They break down how to see through the fluff, focus on why tech exists before adopting it, and build a healthier, curiosity-driven approach to learning in 2025 and beyond. Show Notes 00:00 Welcome to Syntax! 00:39 Scott delivering a non-technical talk at JS Nation. 03:24 Lamenting the frequency of change as developers. 03:46 Understanding why things exist before deciding to learn them. 05:11 Learning styles are a myth? 07:41 First dates and psychology exams. 10:39 Discovering is step one, playing is step two. 13:32 Learn with a project that you actually want. 18:16 Brought to you by Sentry.io. 18:34 Cutting through the noise of new tech. 21:40 Using AI as a learning tool 25:12 Sick Picks & Shameless Plugs. Sick Picks Scott: dbrand Ghost Case 2.0 CJ: analog watches Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Exploring Quantum Computing & Python Frameworks

2025-12-05 12:00:00+00:00
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."

šŸŽ§ Listen to this episode

960: Reacting to the Weird + Creative Corners of the Web

2025-12-03 12:00:00+00:00
Wes and Scott talk about the weird, creative corners of the web—from live-coded music with Strudel and wild Hydra visuals to shader wizardry, projection-mapping art, fully synced Christmas lights, and more. Show Notes 00:00 Welcome to Syntax! 01:10 Strudel https://www.tiktok.com/@dj_dave__/video/7541104277234748685 https://www.tiktok.com/@switch.angel/video/7542776528057257229 03:45 Hydra https://www.tiktok.com/@spacetiger3000/video/7552354878635511095?q=hydra%20video%20synth&t=1762879433461 05:44 P5.js https://www.tiktok.com/@julian_hespenheide/video/7408511121323248929?q=p5.js%20&t=1762879954031 https://www.tiktok.com/@m171148385929472638284/video/7544793538496679190?q=p5.js%20&t=1762879954031 08:03 ShaderToy https://shaders.com/ https://www.shadertoy.com/view/ldlcRf https://www.tiktok.com/@phi.graphics/video/6927475445059292421?q=shadertoy&t=1762879566343 https://www.tiktok.com/@fifi_cgi/video/7255109146062687494?q=shadertoy&t=1762879566343 11:13 Brought to you by Sentry.io 11:37 MadMapper https://www.tiktok.com/@dfiftyd50/video/7556202990529563920 https://www.tiktok.com/@dfiftyd50/video/7569626387577965844?q=projection%20mapping&t=1762879388084 14:13 Touch Designer https://www.reddit.com/r/TouchDesigner/ https://www.tiktok.com/@bedareveryday/video/7558850186601172246?q=Touch%20Designer&t=1762879652502 https://www.tiktok.com/@maze88196/video/7521311510488943894?q=Touch%20Designer&t=1762879652502 https://www.tiktok.com/@valen.bertol/video/7475117172847562039?q=Touch%20Designer&t=1762879652502 16:45 xLights https://www.tiktok.com/@ravespotlight/video/7311729112425516320?q=lights%20christmas&t=1762879799384 https://www.tiktok.com/@thatlightguy_/video/7315199858338565418?q=xlights%20show&t=1762879927155 20:19 Sick Picks + Shameless Plugs Sick Picks Scott: NeueCast Wes: 6 Port 2.5G Unmanaged Ethernet Switch UGREEN USB to Ethernet Adapter 2.5Gb Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#529: Computer Science from Scratch

2025-12-03 08:00:00+00:00
A lot of people building software today never took the traditional CS path. They arrived through curiosity, a job that needed automating, or a late-night itch to make something work. This week, David Kopec joins me to talk about rebuilding computer science for exactly those folks, the ones who learned to program first and are now ready to understand the deeper ideas that power the tools they use every day.

šŸŽ§ Listen to this episode

959: TypeScript on the GPU with TypeGPU creator Iwo Plaza

2025-12-01 12:00:00+00:00
Scott and CJ sit down live at JSNation NYC with Iwo Plaza, creator of TypeGPU, to dig into how WebGPU is unlocking a new wave of graphics and compute power on the web. They chat about shader authoring in TypeScript, the future of GPU-powered AI in the browser, and what it takes to build a killer developer-friendly graphics library. Show Notes 00:00 Welcome to Syntax! 00:32 What is TypeGPU? High-level overview and why it exists 01:20 WebGPU vs WebGL – the new era of GPU access on the web 01:47 Why shader languages are hard + making them accessible 02:24 Iwo’s background in C++, OpenGL, and discovering JS 03:06 Sharing graphics work on the web vs native platforms 03:29 WebGPU frustrations that inspired TypeGPU 04:17 Making GPU–CPU data exchange easier with Zod-like schemas 05:01 Writing shaders in JavaScript + the unified type system 05:38 How the ā€œuse_gpuā€ directive works under the hood 06:05 Building a compiler that turns TypeScript into shader code 07:00 Type inference, primitives, structs, and TypeScript magic 08:21 Leveraging existing tooling via Unplugin + bundler integration 09:15 How TypeGPU extracts ASTs and generates TinyEST metadata 10:10 Runtime shader generation vs build-time macros 11:07 How the AST is traversed + maintaining transparency in output 11:43 Example projects like Jelly Shader and community reception 12:05 Brought to you by Sentry.io 12:30 Does TypeGPU replace 3JS? How it fits the existing ecosystem 13:20 Low-level control vs high-level abstractions 14:04 Upcoming Three.js integration – plugging TypeGPU into materials compute shaders 15:34 Making GPU development more approachable 16:26 Docs, examples, and the philosophy behind TypeGPU documentation 17:03 Building features by building examples first 18:13 Using examples as a test suite + how docs shape API design 19:00 Docs as a forcing function for intuitive APIs 20:21 GPU for AI – browser inference and future abstractions 21:11 How AI examples inform new libraries (noise, inference, etc.) 21:57 Keeping the core package small and flexible 22:44 Building ā€œTypeGPU AIā€-style extensions without bloating the core 23:07 The cost of AI examples and building everything from scratch 23:41 Standard library design and future of the ecosystem 24:04 Closing thoughts from Iwo – OSS, GPU renaissance, and encouragement 24:34 Sick Picks & Shameless Plugs Sick Picks Iwo: Perogies Shameless Plugs Iwo: Syntax Podcast Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#528: Python apps with LLM building blocks

2025-11-30 08:00:00+00:00
In this episode, I’m talking with Vincent Warmerdam about treating LLMs as just another API in your Python app, with clear boundaries, small focused endpoints, and good monitoring. We’ll dig into patterns for wrapping these calls, caching and inspecting responses, and deciding where an LLM API actually earns its keep in your architecture.

šŸŽ§ Listen to this episode

958: 2025 Holiday Gift Guide

2025-11-26 12:00:00+00:00
The Syntax team brings us their annual Holiday Gift Guide! They’ve curated the best gadgets, tools, food, and even kitchen essentials for the dev in your life — plus a few treats anyone would love to unwrap. Show Notes 00:00 Welcome to Syntax 00:54 Our Favorite Things 01:03 Wes - Bambu Lab 3d Printers 01:50 Wes - Leatherman Arc Multi-tool 03:07 Kaitlin - Ruffwear Roamer Bungee Dog Leash 04:49 Niki - Magic Mirror Home Screen 06:42 Randy - Everything Presence Light 08:22 Randy - Henson Safety Razor 10:24 CJ - Viltrox 28mm Pancake Lens 11:17 Scott - 3D Printers 11:37 Scott - Anker 4-Port Charger 12:45 Randy - DJI Mic Mini 13:37 Randy - Velcro Cable Ties 14:22 Kaitlin - Prequel Skin Care 16:18 Kaitlin - Coros Pace 3 Running Watch 17:30 Niki - Steam Machine 18:02 Niki - VR Headset 18:18 Under $30 18:25 Wes - ESP32 18:45 Wes - WS2811 LED Strips 19:44 CJ - Precision Screw Driver Set 20:42 Scott - Magsafe Popsocket 21:23 Wes - Digital Calipers 22:45 CJ - Microfiber Device Cloth 23:33 Scott - Candle Warmer 25:30 Wes - Matte Screen Protectors 25:38 Desk Items 25:46 Wes - MX Master 4 Logitech Mouse 26:40 Scott - Elgato Stream Deck 29:12 CJ - Magsafe Phone Stand 30:13 Office Items 30:21 Wes - Heated Vest 31:33 CJ - USB Hand Warmers 32:23 Tech / Storage 32:32 Scott - MoCa Ethernet Adapter 33:41 CJ - 4TB Drive and 1TB SD Card 35:06 Wes - BenQ Programming Monitors 37:28 Food 37:37 Scott - Biena Edamame 38:08 Wes - Heartbeat Hot Sauce 39:11 Wes - Seoul Sisters Kimchi Mix 39:32 CJ - Clif Protein Bars 39:55 CJ - Z Energy Strips 40:51 Kitchen Gadgets 41:00 Wes - Carbon Steel Frying Pan 42:35 CJ - Air Fryer 44:45 Scott - Zojirushi Water Boiler 45:43 Scott - Teak Cutting Board 47:36 Clothes 48:26 Wes - Hooke / Naked and Famous 49:24 Scott - Octobre Clothing 50:31 Scott - Sezane Clothing 52:11 CJ - Blank Mineral Wash Shirts 53:10 Kids 53:17 Wes - Yoto Player 54:47 Scott - Tonie Box 56:06 CJ - Large Hedgehog Plush 56:43 CJ - Tortilla Blanket 57:04 Smarthome 57:08 Scott - Lutron Caseta 57:38 Wes - Meross and Refoss 01:00:41 Scott - Apollo Automation 01:01:29 CJ - Kauf Smart Home 01:02:52 CJ - Plant LED Bulb 01:04:03 Scott - Roland Electronic Drum Set 01:04:58 Thanks! Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

957: CSS: Advanced and Obscure

2025-11-24 12:00:00+00:00
Scott and Wes face off in a CSS-themed round of STUMP’d, quizzing each other on shape functions, scroll snap types, obscure functions, and long-forgotten spec history. From ray() to cross-fade() to print-color quirks, this episode is packed with rapid-fire frontend trivia guaranteed to sharpen your CSS brain. Show Notes 00:00 Welcome to Syntax! 00:54 Which of the following are valid CSS Shape Functions? 02:03 CSS Selectors 4 specification demo. 03:20 How many functions are there in CSS? 04:22 Brought to you by Sentry.io. 04:47 Explain the 3 CSS Scroll Snap types. 06:38 What does the xywh() do? 09:15 What about ray()? 11:25 What do CSS Namespaces do? 14:37 What year was CSS paint() bug tracker introduced in Firefox? 17:34 What does print-color-adjust do? 20:26 What is cross-fade()? 23:54 Name 3 reasons you might use CSS @property. 27:36 List all 10 CSS Filter Functions. 32:41 Name 5 font properties. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Building a FastAPI Application & Exploring Python Concurrency

2025-11-21 12:00:00+00:00
What are the steps to get started building a FastAPI application? What are the different types of concurrency available in Python? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects.

šŸŽ§ Listen to this episode

956: Should I Keep Using WordPress?

2025-11-19 12:00:00+00:00
In this potluck episode, Wes and Scott answer your questions about paid vs. free SSL, the state of frontend jobs, headless WordPress trade-offs, organizing TypeScript types, and more! Show Notes 00:00 Welcome to Syntax! 00:51 Recapping the GitHub Meetup 05:14 Is there any real benefit to picking a paid SSL over Let's Encrypt? 08:03 Is the pure frontend role disappearing? 11:17 Is the gravy train over for software devs? 20:48 How Scott automates versioning with GitHub Actions changesets Intro to using changesets zero-svelte graffiti 25:16 Brought to you by Sentry.io 25:41 Thoughts on VS Code alternatives and the rise of Zed 33:01 Should I switch to headless WordPress or continue rolling my own PHP templates? 37:33 How do you organize TypeScript types in a frontend project? 40:55 How do I continue to level up as a developer? 45:36 Stay in a comfortable job or embrace new challenges? Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

955: SvelteKit has solved data loading

2025-11-17 12:00:00+00:00
Scott and Wes break down SvelteKit’s new remote functions and why they finally solve the long-standing pain of page-level data in Svelte. They cover queries, forms, batching, caching, and all the clever RPC ergonomics that make Svelte’s approach feel surprisingly powerful and refreshingly simple. Show Notes 00:00 Welcome to Syntax! 00:45 Lots of RPC library options. 01:22 Svelte’s Page-Level Data Always Felt Off 02:12 Progress on the new Syntax site. 03:47 Remote functions explained. Svelte Remote Functions Docs. 04:15 Make a .remote.ts file. 05:07 Querying data. 07:52 Brought to you by Sentry.io. 08:17 Svelte’s leg up on React. 10:13 Query Arguments. 11:39 The benefits of Standard Schema. 13:13 Refreshing Queries. 13:29 query.batch 15:18 Form function. 21:13 Enhance. 22:31 Refresh. 23:16 Command query. 24:25 Prerender. 25:22 Caching. 27:44 My Local Cache Service Worker. 31:23 Sick Picks + Shameless Plugs. Sick Picks Scott: CoffeeSock ColdBrew Filter, Chemex Filter. Wes: Bosch Dishwasher. Shameless Plugs Scott: Syntax on YouTube Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

Preparing Data Science Projects for Production

2025-11-14 12:00:00+00:00
How do you prepare your Python data science projects for production? What are the essential tools and techniques to make your code reproducible, organized, and testable? This week on the show, Khuyen Tran from CodeCut discusses her new book, "Production Ready Data Science."

šŸŽ§ Listen to this episode

954: Fullstack TanStack! The Scoop with Tanner Linsley

2025-11-12 12:00:00+00:00
Live from GitHub Universe, Wes and Scott talk with Tanner Linsley about the latest from TanStack, including TanStack DB’s local-first syncing, new routing ideas, and fresh perspectives on server components and ā€œmagicā€ directives. They explore performance, incremental adoption, and what’s next for the rapidly growing TanStack ecosystem — plus a few spicy takes along the way. Show Notes 00:00 Welcome to Syntax! 01:12 What’s new in the TanStack universe? 01:57 Introducing TanStack DB: local-first sync engine 05:17 How syncing and transactions actually work in TanStack DB 07:03 Next.js 16 Workflows: durable functions and the directive debate 08:46 Brought to you by Sentry.io 09:41 Tanner’s case for fewer ā€œmagic directivesā€ 12:36 TanStack’s approach to React Server Components 14:30 The momentum of leading an ecosystem 15:38 Top-secret TanStack project in the works Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

953: Why v0 creator left Vercel to fix GitHub (GOAT Jared Palmer)

2025-11-10 12:00:00+00:00
Scott and Wes sit down with Jared Palmer of GitHub (formerly of Vercel) to unpack all the biggest announcements from GitHub Universe 2025. They dive into the future of developer workflows with agents, how GitHub is rethinking project interfaces, and where there’s still room to improve the dev experience. Show Notes 00:00 Welcome to Syntax! GitHub Universe Recap. 00:21 Who is Jared Palmer? 01:19 The developer workflow with agents. 03:33 Opening ongoing tasks in VS Code. 06:08 The benefit of agnostic agents. 07:04 GitHub’s biggest opportunities for improvement. 09:38 What’s your interface of choice for a new project? Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#527: MCP Servers for Python Devs

2025-11-10 08:00:00+00:00
Today we’re digging into the Model Context Protocol, or MCP. Think LSP for AI: build a small Python service once and your tools and data show up across editors and agents like VS Code, Claude Code, and more. My guest, Den Delimarsky from Microsoft, helps build this space and will keep us honest about what’s solid versus what's just shiny. We’ll keep it practical: transports that actually work, guardrails you can trust, and a tiny server you could ship this week. By the end, you’ll have a clear mental model and a path to plug Python into the internet of agents.

šŸŽ§ Listen to this episode

Advice for Writing Maintainable Python Code

2025-11-07 12:00:00+00:00
What are techniques for writing maintainable Python code? How do you make your Python more readable and easier to refactor? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects.

šŸŽ§ Listen to this episode

952: VS Code, GitHub & Copilot - UNIVERSE 25 Announcements + Reactions

2025-11-05 12:00:00+00:00
Live from GitHub Universe, Wes, Scott, and CJ talk about the latest AI and developer tools from GitHub, including Agent HQ, Copilot integrations, and the new mission control for agents. They also share stories from the Syntax meetup, hack their conference badges, and debate AI’s role in coding. Show Notes 00:00 Welcome to Syntax! 03:39 This year’s GitHub Universe badges were next-level 07:35 Keynote recap: GitHub Agents, Copilot, and Mission Control 18:21 Brought to you by Sentry.io 20:33 Plan Mode and the future of collaborative coding 23:40 Cursor’s new trick: firing off agents straight from Slack 25:32 Copilot Metrics Dashboard and agent analytics 27:53 Effortless MCP integration and custom agent workflows 31:35 Wrapping up GitHub Universe 2025 Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

951: A first look at Remix 3

2025-11-03 12:00:00+00:00
Scott and Wes dive into Remix 3, exploring how it embraces native web standards like Events, Signals, and Streams to become a truly full-stack framework. They unpack what ā€œLLM-ready,ā€ thin APIs, and a standards-based approach mean for the future of web development. Show Notes 00:00 Welcome to Syntax! 03:21 Uses the platform - native Events, Signals, Streams, Fetch 04:16 Remix 3, Fully Fullstack. 04:57 LLM‑ready + thin APIs 05:53 Brought to you by Sentry.io. 06:18 My previous predictions. 07:44 The value of ā€˜Standards Based’. 09:13 Component model - JSX/TSX; state = variables; call this.render() 11:56 Adding reactivity to Remix. 15:15 Event‑based architecture - custom events, EventTarget, interactions 20:52 Context & type‑safe access. 22:46 Composing interaction logic within events. 24:25 Signals - AbortSignal to cancel async ops 25:21 Benefits of standards - bring your own tools/libraries Michael Asnong X Post. 26:42 CSS - built‑in CSS prop; Svelte‑like scoping 28:34 Server - Web Request/Response, Web Streams across runtimes 31:23 Frames - async URL‑addressable components with fallbacks 33:07 Tooling - ESM; use Vite or esbuild 34:47 Routing - code‑based named routes 35:57 Questions/Concerns - manual rendering vs reactivity 38:47 URL Pattern API - modern, fast routing foundations 41:33 Sick Picks + Shameless Plugs. Sick Picks Scott: MoCA 2.5 Network Adapter Wes: Bosch Dishwasher Shameless Plugs Scott: Syntax on YouTube. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#526: Building Data Science with Foundation LLM Models

2025-11-01 07:00:00+00:00
Today, we’re talking about building real AI products with foundation models. Not toy demos, not vibes. We’ll get into the boring dashboards that save launches, evals that change your mind, and the shift from analyst to AI app builder. Our guide is Hugo Bowne-Anderson, educator, podcaster, and data scientist, who’s been in the trenches from scalable Python to LLM apps. If you care about shipping LLM features without burning the house down, stick around.

šŸŽ§ Listen to this episode

Michael Kennedy: Managing Your Own Python Infrastructure

2025-10-31 12:00:00+00:00
How do you deploy your Python application without getting locked into an expensive cloud-based service? This week on the show, Michael Kennedy from the Talk Python podcast returns to discuss his new book, "Talk Python in Production."

šŸŽ§ Listen to this episode

950: Even SCARIER Web Dev Nightmares (Spooky Stories Pt. 2)

2025-10-29 11:00:00+00:00
In part 2 of this year’s Spooky Stories special, Wes and Scott discuss the most chilling developer horror stories—from six-month-old unprocessed donations and runaway dog-food orders to vanishing databases, DNS disasters, code that literally tore apart a mall’s ventilation system, and more! Show Notes 00:00 Welcome to Syntax! 01:33 A Bug Beyond the Grave 04:16 NHL SPOOKS 06:36 White Space Ghost Faced 10:54 Over Order Nightmare 16:50 Alaskian 21:16 Brought to you by Sentry.io 22:50 Rackspace’d Out 25:02 Fired 26:52 WordPress Woes 33:21 What does the P in VPS stand for? 34:18 Beyond the Grave II 35:39 The Hottest Hot Fix 37:54 Bad Redirect 40:03 Instead of Making Money, You Spend Money! 41:26 Certbot Certain Death 43:55 It’s Always DNS 50:02 Cache Ruins Everything Around Me 51:52 Fiber F-Up 56:18 More Spooky Stories Don’t Drink and Deploy 😬 | Spooky Dev Stories Pt. 1 Submit your Spooky Stories Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

949: Web Dev HORROR Stories + Spooky Trivia! (Spooky Stories Pt. 1)

2025-10-27 11:00:00+00:00
It’s that time of year again, Scott (as Dracula) and Wes (as a big bad shark) return for their annual Spooky Stories special! They’re joined by a mysterious guest for a round of creepy coding trivia and chilling true tales of web dev gone wrong; dropped databases, haunted passwords, and more. Beware: these are real developer horror stories. Show Notes 00:00 Welcome to Syntax! 00:05 Scott’s vampire costume. 00:38 New to live-streaming. 00:54 AWS Outage. 01:50 What is Spooky Stories? 02:01 (Wes is wearing a shark costume) 02:34 Brought to you by Sentry.io. 03:30 PHP MyHeadache. 06:23 A Browser Hack. 08:30 Browser Hack Gameshow & Special Guest! 17:01 Ghost Password. 21:32 Just A Patch. 24:12 Don’t drink and Deploy. 34:47 Discount. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#525: NiceGUI Goes 3.0

2025-10-27 07:00:00+00:00
Building a UI in Python usually means choosing between "quick and limited" or "powerful and painful." What if you could write modern, component-based web apps in pure Python and still keep full control? NiceGUI, pronounced "Nice Guy" sits on FastAPI with a Vue/Quasar front end, gives you real components, live updates over websockets, and it’s running in production at Zauberzeug, a German robotic company. On this episode, I’m talking with NiceGUI’s creators, Rodja Trappe and Falko Schindler, about how it works, where it shines, and what’s coming next. With version 3.0 releasing around the same time this episode comes out, we spend the end of the episode celebrating the 3.0 release.

šŸŽ§ Listen to this episode

Benchmarking Python 3.14 & Enabling Asyncio to Scale

2025-10-24 12:00:00+00:00
How does Python 3.14 perform under a few hand-crafted benchmarks? Does the performance of asyncio scale on the free-threaded build? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects.

šŸŽ§ Listen to this episode

948: Zed is Ready For Primetime

2025-10-22 11:00:00+00:00
Wes and Scott talk about what makes Zed—the hot new editor built in Rust—fast, beautiful, and finally ready for primetime. From Git UI to extensions and AI tools, they break down what Zed gets right, what it still lacks, and whether it’s time to finally ditch VS Code. Show Notes 00:00 Welcome to Syntax! Syntax San Francisco Meetup We need your Spooky Stories 02:37 Brought to you by Sentry.io 04:07 What is Zed? 06:46 Zed UI: fast and clean 10:17 General editor experience 11:44 Extensions marketplace 17:53 Git UI 22:03 Problems UI 26:01 Real-time collaboration Remote Development 27:39 Command prompt tricks and built-in tools 31:03 Zed’s AI features AI Coding Sucks 37:08 What kept Scott away—and why he’s back 40:33 What’s still missing Text Manipulation Kung Fu for the Aspiring Black Belt 46:43 Sick Picks & Shameless Plugs Sick Picks Scott: Zojirushi 5.0 Liter Water Boiler Wes: Syntax Keycaps Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

947: S-Tier MCP Servers for Developers

2025-10-20 11:00:00+00:00
Scott and Wes break down the top-tier MCP servers developers are using right now. From browser automation to debugging superpowers, they explore how these servers are changing what’s possible in modern dev workflows. Show Notes 00:00 Welcome to Syntax! 01:52 Brought to you by Sentry.io. 02:46 Submit your Spooky Stories! 03:37 Syntax San Francisco Meetup. 04:11 S-Tier MCP Servers. 04:17 Sentry MCP Server (not sponsored). 05:01 Pause, what the heck is an MCP server. 05:45 Back to the Sentry MCP. 07:07 Spotlight JS. 09:08 ElevenLabs MCP hack. 11:19 Docs Tools. 11:29 Context7. 15:55 GitHub MCP Registry. 16:10 Nuxt MCP Server. 16:25 Svelte MCP Server. 20:35 Cloudflare MCP Servers. 22:34 Chrome Dev Tools (Playwright) MCP Server. 25:17 Stripe MCP Server. 27:55 Mastra. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads

šŸŽ§ Listen to this episode

#524: 38 things Python developers should learn in 2025

2025-10-20 07:00:00+00:00
Python in 2025 is different. Threads really are about to run in parallel, installs finish before your coffee cools, and containers are the default. In this episode, we count down 38 things to learn this year: free-threaded CPython, uv for packaging, Docker and Compose, Kubernetes with Tilt, DuckDB and Arrow, PyScript at the edge, plus MCP for sane AI workflows. Expect practical wins and migration paths. No buzzword bingo, just what pays off in real apps. Join me along with Peter Wang and Calvin Hendrix-Parker for a fun, fast-moving conversation.

šŸŽ§ Listen to this episode