On the Code with Jason podcast I discuss technical topics with interesting people. Guests include people from companies like GitHub, Google and Stripe.
In this episode I talk with Paul Hammond about TDD as a discoverable principle—something alien programmers would independently arrive at. We discuss my "specify, encode, fulfill" formulation, why programming needs theory instead of rules of thumb, and the business payoff of technical quality: Paul returned to a well-built project after 18 months and delivered months of planned work before Christmas.
Links:
In this episode I talk with Becky Freeman, staff engineer at Caribou and co-organizer of Rocky Mountain Ruby, about legacy code, refactoring long-running applications, and the psychological skills required to get team buy-in for technical improvements.
Links:
In this episode I talk with Cory Zue about his solopreneur journey building SaaS Pegasus, a Django boilerplate product. We discuss AI's potential impact on the business of selling code, the financial anxiety that persists even when things are going well, and content marketing strategies for technical products.
Links:
In this episode I talk with Dave Thomas about why code reuse is overrated, the economics of programming principles, and why we can't empirically test whether practices work—we have to scrutinize the arguments behind them. Dave also discusses his new book Simplicity and his "developer without portfolio" concept.
Links:
In this episode I talk with Wale Olaleye about finding consulting clients through referrals and word of mouth. We discuss the "hunting vs farming" analogy for marketing, simplifying your pitch, filtering clients with deposits, and how genuine community relationships lead to business over time.
Links:
In this episode I talk with Andrea Laforgia about programming principles, why good code is code that's easy to change, and his motto: "write your code so it can be easily deleted." We discuss technical debt as an operating model, the fallacy of sacrificing quality for speed, and AI's impact on learning fundamentals.
Links:
In this episode I talk with Steven Diamante about coaching teams on XP practices and AI coding agents. We discuss why change is so hard (people have to want it), his success turning an underperforming team around through weekly learning hours, and how to use TDD with AI—including "predictive TDD" where you have the agent guess if tests will pass or fail.
Links:
In this episode I talk with Ernesto Tagwerker about using AI for Rails upgrades, AI as an unblocking tool rather than just a speeder-upper, and the dangers of AI-generated "speculative code" that adds liability without value.
Links:
In this episode I talk with Eleni Konior about her path from economics to graphic design to programming, and how creative skills benefit technical work. We discuss building customer-focused features, the importance of assuming the customer's role, and AI in products beyond chatbots—like proactively surfacing recommendations based on user behavior.
Links:
In this episode I talk with Joel Drapper about defect-free development—not just automated testing, but the full spectrum: linting, static typing, database constraints, and especially runtime assertions. Joel's library Literal lets you define type expectations that blow up immediately when violated, catching bugs before they spread.
Links:
In this episode I talk with Kendall Miller about MCP (Model Context Protocol) and why AI agents need third-party guardrails. His company Maybe Don't sits between AI agents and MCP servers to prevent disasters—because AI sometimes solves problems in creative and terrifying ways.
Links: