Search for a command to run...

Timestamps are as accurate as they can be but may be slightly off. We encourage you to listen to the full context.
In this episode, Ryan Donovan welcomes back Scott Hanselman, VP of Developer Community at Microsoft, for a deep dive into "vibe coding" - the practice of using AI to generate code through natural language descriptions. Scott shares his recent experience building a Windows ring light app in about an hour using only voice commands and AI assistance. (11:00) The conversation explores how vibe coding works best when combined with programming expertise, the importance of maintaining human judgment in the development process, and how AI serves as an augmentation tool rather than a replacement for developer skills.
Scott Hanselman is VP of Developer Community at Microsoft and a renowned technologist with over 30 years of experience in software development. He hosts multiple popular podcasts including Hanselminutes, Azure Friday, and Scott & Mark Learn To, and maintains an influential blog at hanselman.com that has been running since the 1990s.
Ryan Donovan is the host of the Stack Overflow podcast and editor of the Stack Overflow blog. He brings a technical writing perspective to discussions about software development and has experience as a "first stupid user" who asks the important clarifying questions that help bridge the gap between technical complexity and user understanding.
Scott emphasizes the importance of viewing AI as augmentation rather than automation. (20:23) He compares effective AI use to Tony Stark's Iron Man suit - an exoskeleton that enhances human capabilities - versus Ultron, an empty shell with no human intelligence inside. The key is maintaining human judgment and decision-making throughout the coding process. Experienced developers can leverage their domain knowledge to guide AI effectively, asking specific questions about window geometry, DPI scaling, or architectural decisions that a non-technical person might miss.
Success with AI-assisted coding depends heavily on understanding programming concepts like data structures, algorithms, and system architecture. (11:18) Scott notes that when he needed to iterate over large data structures, he could instruct the AI to use hash tables instead of simple loops. This level of specificity requires foundational computer science knowledge. Without understanding concepts like arrays, state management, or concurrency, developers may get functional but poorly architected code that works only in specific scenarios rather than robust, scalable solutions.
The quality of AI-generated code directly correlates with the specificity and context provided by the developer. (08:27) Scott's ring light app required about 40 iterations because he needed to provide detailed feedback about monitor geometry, DPI scaling, and visual requirements. Vague requirements lead to generic solutions that may work on one machine but fail in production. Successful vibe coding requires the ability to articulate technical requirements precisely and recognize when the AI's output needs refinement.
Rather than just accepting AI-generated code, developers should actively engage with the AI to understand the reasoning behind its suggestions. (30:31) Scott advocates for asking questions like "What's the historical context about async and await?" or "What problem does this solve?" This approach transforms the AI from a code generator into a tutor that can explain concepts, trade-offs, and best practices. The key is being unafraid to admit ignorance and using the AI as a patient teacher that can provide context without judgment.
The rise of AI coding tools makes mentorship more critical than ever for junior developers. (23:27) Scott discusses Microsoft's "preceptorship model" where senior engineers are assigned to ensure junior developers' success rather than expecting them to pull themselves up by their bootstraps. Without proper mentorship, junior developers might rely solely on AI guidance, missing crucial lessons about code quality, security, and professional development practices. The goal is to ensure early-career engineers develop the war stories and pattern recognition that come from experiencing both successes and failures under expert guidance.