Home

Full Stack Radio

A podcast for developers interested in building great software products. Hosted by Adam Wathan.

152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company

In this episode Adam talks to Ben Orenstein about what you can do to stand out if you’re trying to get a job at a small company.

151: DHH – Building HEY with Hotwire

In this episode Adam talks to DHH about using Hotwire to develop Basecamp's new email service HEY while shipping only 40kb of JavaScript to the client.

150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0

In this episode, Adam and Jack talk about all the secret tips you need to know to screencast like a pro. Then they go deep into some of the things Adam is working on for Tailwind CSS 2.0, like the new default config file.

149: Choosing a Payment Processor, Radical Icons & W3C Hype

Adam and Jack discuss how it sucks when you're forced to change billing platforms, and embark upon a deep dive on the merits of Adam's favorite solutions. We also talk about Jack's recent Radical Icon launch and promotional strategy regrets, which thankfully has a bit of a silver lining, and in Statamic news – the W3C drops WordPress and narrows their next CMS choice down to Statamic and Craft.

148: Accessible Focus Styles, Tailwind Labs on YouTube, and Secret Projects

Adam and Jack talk about accessible focus styles, Headless UI, the new Tailwind Labs YouTube channel, Tailwind presets, and the progress on the great Statamic Bug-Fix-a-Thon of 2020. They also kick around what "Tailwind Lite" could be and where it might live, Adam spills the beans on a secret Tailwind project, and they get really excited about ideas they totally plan to do but probably never will happen.

147: Surviving GitHub Issues, the Statamic 3 Launch Aftermath, Tailwind 1.8, and Headless UI

Adam and Jack talk about strategies for keeping up with GitHub issues and coping with customer criticism, and how life is going after the Statamic 3 launch. They also talk about the new features in Tailwind 1.8, and work through some branding problems for the new Headless UI project the Tailwind team is working on.

146: Launching Statamic 3, GitHub Sponsors, Tailwind CSS v1.7, and Preparing for Laracon

Adam and Jack talk about how the Statamic 3 launch went, and adding GitHub Sponsor tiers to the Statamic GitHub organization and what to give people in exchange for sponsoring. They also talk about the new Tailwind CSS v1.7 release, and the new features like gradient support. Finally, they work through some ideas Adam is preparing for his Laracon talk on “Building component libraries with Tailwind CSS”.

145: Statamic 3.0 and Tailwind CSS 2.0

Jack McDade joins Adam to talk about what he's been up to building up to the Statamic 3.0 launch (it's out now!) and Adam shares a bunch of ideas he's been working on for Tailwind CSS v2.0.

144: Gary Bernhardt - TypeScript and Testing

In this episode, Adam talks to Gary Bernhardt about building Execute Program, why he chose to build it as a full-stack TypeScript application, and the implications using TypeScript has on what you need to test.

143: Rich Harris - Svelte and Defending the Modern Web

In this episode, Adam talks to Rich Harris about Svelte, and why we should keep pushing forward with the modern web even if it's not perfect yet.

142: Jason Cohen - Learning to Hire and Manage a Team

In this episode, Adam talks to Jason Cohen of WP Engine about hiring people to join the Tailwind team, figuring out what to focus on, and learning how to manage.

141: Jason Fried - Running the Tailwind Business on Basecamp

In this episode, Adam talks to Jason Fried about growing the Tailwind team and how to best use Basecamp to keep his particular company organized. He also walks through tons of real examples from their recent work on HEY, sharing lots of behind-the-scenes stuff about how Basecamp use Basecamp themselves.

140: Evan You - Reimagining the Modern Dev Server with Vite

In this episode, Adam talks to Evan You about Vite, a new dev server and build tool for modern JavaScript projects.

139: Alex DeBrie - DynamoDB for Relational Database Diehards

In this episode, Adam is talks to Alex DeBrie about DynamoDB, and how it compares to relational databases like MySQL.

138: Tom Preston-Werner - Building Full-Stack JS Apps with Redwood.js

In this episode, Adam is talks to Tom Preston-Werner about Redwood.js, a new full-stack JavaScript framework for building edge-ready web applications.

137: Tim Neutkens - Continuing to Innovate with Next.js 9.3

In this episode, Adam is talks to Tim Neutkens about what's new in Next.js 9.3 and how it's changing the way applications are built at ZEIT.

136: Michael Chan - React Is Not a Rails Competitor

In this episode, Adam is joined by Michael Chan to talk about how people who identify as React developers are building real web applications, and why it seems like nobody is talking about databases or background jobs anymore.

135: Lessons Learned Building Tailwind UI

In this episode, Adam is joined by Sam Selikoff to talk about some of the interesting technical challenges he faced building Tailwind UI, and how working on the project has influenced how he will build layouts in the future.

134: Mark Dalgleish - You Should Be Using Layout Components

In this episode, Adam talks to Mark Dalgleish about common mistakes people make in their approach to constructing layouts, and how dedicated layout components can make your component system much easier to work with.

133: Sam Selikoff - Building Production-Ready SPAs Fast with Mirage.js

In this episode, Adam talks to Sam Selikoff about Mirage.js and how to use it to build production-ready front-end applications, even if your back-end API isn't ready yet.

132: Caleb Porzio - Just Enough JavaScript with Alpine.js

In this episode, Adam talks to Caleb Porzio about his new UI library Alpine.js.

131: Ryan Singer - How Basecamp Builds Software

In this episode, Adam talks to Ryan Singer of Basecamp about how they plan, structure, and execute on new features.

130: David Khourshid - Building Better UI Components with State Machines

In this episode, Adam talks to David Khourshid about using state machines to build UI components that are simpler and more resilient to bugs.

129: Evan You - What's Coming in Vue.js 3.0

In this episode, Adam talks to Evan You about all of the changes and improvements coming to Vue.js 3.0.

128: Alasdair Monk - Scaling CSS at Heroku with Utility Classes

In this episode, Adam talks to Alasdair Monk about how they approach CSS at Heroku, and how using a utility-based approach has kept their team happy for the last three years.

127: Jonathan Reinink - Building Modern Monoliths with Inertia.js

In this episode, Adam talks to Jonathan Reinink about Inertia.js, a new framework he recently released that lets you build single page applications with Vue, React, or Svelte, without having to give up the productivity benefits of traditional server-side development workflows using tools like Laravel or Rails.

126: James Long - Building Distributed Local-First JavaScript Applications

In this episode, Adam talks to James Long (creator of Prettier) about building Actual, a local-first Electron application with no central database that syncs data peer-to-peer.

125: Rob Walling - Choosing the Right Product Idea

In this episode, Adam talks to Rob Walling about choosing, validating, and marketing a viable software product.

124: Leslie Cohn-Wein & Rafael Conde - Designing the User Interface at Netlify

In this episode, Adam talks to Leslie Cohn-Wein and Rafael Conde about designing and implementing new UI features at Netlify.

123: Ian Landsman - Marketing and Positioning a New Tailwind CSS Product

In this episode, Adam gets some advice from Ian Landsman of Userscape on marketing and positioning a new Tailwind CSS components directory project he's working on with Steve Schoger.

122: Matt Biilmann - Architecting the Netlify Dashboard with React and Redux

In this episode, Adam talks to Matt Biilmann CEO of Netlify about building the Netlify dashboard, and what makes it feel so fast.

121: Benedikt Deicke - Building Userlist.io

In this episode, Adam talks to Benedikt Deicke about building Userlist.io, a new email automation product for SaaS businesses that he recently launched with his co-founder Jane Portman.

120: Taylor Otwell - Serverless Laravel with Vapor

In this episode, Adam talks to Taylor Otwell about Laravel Vapor, the new serverless platform for Laravel applications that was recently announced at Laracon US.

119: Ryan Toronto - Why a Back-End Developer Made the Switch to SPAs

In this episode, Adam talks to Ryan Toronto about his journey from being a full stack Rails developer to focusing on single page applications, and why application developers should be betting on UI-focused frameworks like Ember, React, and Vue.

118: Aaron Gustafson - Semantic HTML: The Hard Parts

In this episode, Adam talks to Aaron Gustafson about authoring semantic HTML in the context of web applications, where choosing the right element can be a lot more complicated than it seems.

117: Mitchell Hamilton - Writing CSS-in-JS with Emotion

In this episode, Adam talks to Mitchell Hamilton about writing your styles directly in your JavaScript components using the CSS-in-JS library Emotion.

116: Jerod Santo - Building the Changelog Platform with Elixir and Phoenix

In this episode, Adam talks to Jerod Santo of The Changelog about building their custom podcasting platform using Elixir and Phoenix.

115: Jason Lengstorf - Gatsby for Skeptics

In this episode, Adam talks to Jason Lengstorf about Gatsby, and why using React and GraphQL to build something even as simple as a blog is not as crazy of an idea as it sounds.

114: Sebastian De Deyne - React for Vue Developers

In this episode, Adam talks to Sebastian De Deyne about learning React from the perspective of a Vue developer, and how to translate all of the Vue features you're already comfortable with to React code.

113: Justin Jackson - Growing Transistor to $10,000/month

In this episode, Adam talks to Justin Jackson about growing his new SaaS business Transistor to $10,000 in MRR.

112: Guillermo Rauch - Building Serverless Applications with Now

In this episode, Adam talks to Guillermo Rauch building and deploying serverless web applications with Now.

111: Jeffrey Way - Building the New Laracasts with Tailwind CSS

In this episode, Adam talks to Jeffrey Way about the process of building the brand new Laracasts.com with Tailwind CSS.

110: Caleb Porzio - Embracing the Backend with Livewire

In this episode, Adam talks to Caleb Porzio about Livewire, a new library he's working on that lets you build interactive user interfaces using server-side code.

109: The Road to Tailwind CSS v1.0

In this episode, the tables are turned as Sam Selikoff interviews Adam about the upcoming release of Tailwind CSS v1.0.

108: Jonathan Reinink - Client-Side Rendering, Server-Side Routing

In this episode, Adam talks to Jonathan Reinink about a new approach he has been using to build Laravel and Vue.js apps that lets him match the UI fidelity of an SPA, without abandoning server-side routing or data fetching.

107: Sam Selikoff - Pushing Complexity to the Client-Side

In this episode, Adam continues his discussion with Sam Selikoff about building single page applications, this time focusing on strategies for keeping your API layer as simple as possible, so all of your complexity lives in your client-side codebase instead of being spread across both.

106: Sam Selikoff - Single Page Application Architecture

In this episode, Adam talks to Sam Selikoff about single page application architecture, and why you should think of client-side applications like desktop applications.

105: Strength Training for Nerds

In the spirit of the new year, Adam and Ben Orenstein talk about getting in shape through strength training.

104: Jonathan Reinink - Pushing More Work to the Database

In this episode, Adam talks to Jonathan Reinink about strategies for off-loading resource intensive work from your application code and into your database.

103: Steve Schoger - Design Q&A + Refactoring UI Details

In this episode, Adam and Steve Schoger answer listener questions about UI design, and share all of the details about their upcoming book and design resource Refactoring UI.

102: Paul Jarvis - Staying Small

In this episode Adam talks to Paul Jarvis about defining your own version of success and why you might not need to build a big business to achieve it.

101: Ben Orenstein - How to Build an App in a Week

In this episode Adam talks to Ben Orenstein about the common mistakes people make when working on a new project that prevent them from getting it to the finish line.

100: Sébastien Chopin - Building Universal Vue.js Apps with Nuxt.js

In this episode Adam talks to Sébastien Chopin about Nuxt.js, a Next.js-inspired framework for building server-rendered client-side applications with Vue.js.

99: Tim Neutkens - Building React Apps with Next.js

In this episode Adam talks to Tim Neutkens about Next.js, an opinionated React framework for building server-rendered client-side applications.

98: Ryan Chenkie - Securing Single Page Applications

In this episode Adam talks to Ryan Chenkie of Angularcasts about authentication strategies and security best practices when building client-side applications with frameworks like React, Vue, Angular, or Ember.

97: Ryan Florence - Building Accessible UI Components

In this episode Adam talks to Ryan Florence about the challenges of making custom UI components accessible, and how Ryan is trying to make that easier with Reach UI.

96: James Clear - Designing Your Environment to Shape Your Behavior

In this episode, Adam talks to James Clear about why goal setting isn't enough, why you should focus on building habits instead, and how to build habits that you'll actually stick with.

95: Frank de Jonge - Implementing Event Sourcing

In this episode, Adam continues his event sourcing discussion with Frank de Jonge from episode 85, going deep into how to actually implement event sourcing using Frank's library EventSauce.

94: Ben Orenstein - The Art of Pairing

In this episode, Adam talks to Ben Orenstein about the benefits of pair programming and how to do it effectively.

93: Justin Jackson - Who You Want to Help > What You Want to Build

In this episode, Adam and Justin Jackson have a candid conversation about a life-changing realization Adam recently had about what he does for a living. They talk about why it's important to define your business by the people it serves instead of the product you make, and how to stop stressing yourself out trying to come up with the perfect SaaS app idea.

92: Derrick Reimer - Building an SPA with Elm, Phoenix and GraphQL

In this episode, Adam talks to Derrick Reimer about building his new app Level as an SPA using Elm, Phoenix, and GraphQL.

91: Derrick Reimer - Designing a Calmer Team Communication Platform

In this episode, Adam talks to Derrick Reimer about the product design decisions behind Level, a new team communication platform Derrick is building. They also talk about Derrick's decision to open-source the entire codebase, despite the fact that he's building a real business around it.

90: David Hemphill - Using JSX with Vue.js

In this episode, Adam talks to David Hemphill about using JSX instead of templates in Vue.js, and why you might want to give it a try.

89: Sam Selikoff - Choosing Ember.js in 2018

In this episode, Adam talks to Sam Selikoff about how Ember fits into the JS framework landscape in 2018, and why it might be the right choice for your next project.

88: Blake Newman - Vue.js State Management with Vuex

In this episode, Adam talks to Blake Newman about getting started with Vuex, and how you would use it to manage your application's state using several practical real-world examples.

87: Chris Fritz - Vue.js Anti-Patterns (and How to Avoid Them)

In this episode, Adam talks to Chris Fritz about common mistakes people make when designing Vue.js applications, and better ways to solve the same problems.

86: Jonathan Reinink - Rebuilding a SaaS with Vue.js and Tailwind CSS

In this episode, Adam talks to Jonathan Reinink about lessons learned rebuilding his SaaS app with Vue.js and Tailwind CSS.

85: Frank de Jonge - Event Sourcing for Beginners

In this episode, Adam talks to Frank de Jonge, author of the EventSauce library, about what event sourcing is, how it works, and what it looks like to use it to model some practical real-world problems.

84: Edd Yerburgh - Testing Vue.js Components

In this episode, Adam talks to Edd Yerburgh, Vue.js core team member and author of the vue-test-utils library, about testing Vue components.

83: DHH - Stimulus in Practice + On Writing Software Well

In this episode, Adam talks to David Heinemeier Hansson about Basecamp's new JavaScript framework "Stimulus" as well as David's new YouTube series "On Writing Software Well."

82: Sarah Drasner - Animating the Web with CSS and JavaScript

In this episode, Adam talks to Sarah Drasner about using animations and transitions to create more intuitive user interfaces, as well as technical tips, tricks and best practices for implementing them well.

81: Evan You - Advanced Vue Component Design

In this episode, Adam talks to Evan You the creator of Vue.js about advanced component design patterns, and using features like scoped slots and render functions to build components that are much more than just UI widgets.

80: Tom Schlick - Building Multitenant Applications

In this episode, Adam talks to Tom Schlick about tackling challenges faced when building multitenant apps.

79: Kent C. Dodds - Building Reusable React Components with Render Props

In this episode, Adam talks to Kent C. Dodds about building "downshift", a React autocomplete component he designed for experiences he needed to build at PayPal.

78: Ben Orenstein - Our All-Time Favorite Refactorings

In this episode, Adam and Ben Orenstein share nine of their favorite refactorings that you can use to clean up your code.

77: Tailwind CSS Q&A and the Road to 1.0

In this episode, Adam and Jonathan Reinink continue their discussion about Tailwind CSS, answering listener questions about the framework and sharing details behind the roadmap to 1.0.

76: Tailwind CSS vs. the World

In this episode, Adam is joined by Jonathan Reinink to discuss Tailwind CSS, a new utility-first CSS framework that they just released. They talk about what Tailwind is, how it works, and what makes it different than component-based frameworks like Bootstrap or other utility frameworks like Tachyons.

75: Diana Mounter - Design Systems and Utility Classes at GitHub

In this episode, Adam talks to Diana Mounter of GitHub to talk about using design systems to tame legacy CSS, and how GitHub is using utility classes to make it easier to build more consistent, maintainable user interfaces.

74: Steve Schoger - Tactical Design Advice for Developers

In this episode, Adam is joined by Steve Schoger to talk about five ways developers can get better at designing their own projects.

73: Justin Jackson - Making a Living From Your Own Projects

In this episode, Adam is joined by Justin Jackson to talk about how to start working towards making a full-time living from your own projects.

72: Taylor Otwell - Testing Laravel Applications

In this episode, Adam is joined by Taylor Otwell the creator of Laravel to talk about their approaches to testing Laravel applications.

71: Building a CSS Framework with PostCSS

In this episode, Adam is joined by Matt Stauffer of Tighten to talk about building a CSS framework with PostCSS.

70: Jeffrey Way - Vue.js Tactics for Server-Side Web Apps

In this episode, Adam is joined by Jeffrey Way of Laracasts to share some tips and tricks for using Vue.js elegantly with traditional server-side web apps.

69: Hybrid Mobile Apps with Turbolinks and Laravel

In this episode, Adam talks to Jonathan Reinink about what it's like to build a Laravel application using Turbolinks, how it plays with front-end frameworks like Vue.js, and how it's helping him quickly develop web, iOS, and Android apps for his SaaS business all by himself.

68: Building Interfaces with Utility-First CSS

In this episode, Adam welcomes back Jonathan Reinink to talk about implementing designs with a utility-first approach to CSS.

67: Launch Takeways, Interface Breakthroughs, and First Round Armbars

In this episode, David shares some lessons learned from the PushSilver Infinite launch: what went well, what could've been improved, and what he would double down on next time.

66: Pre-Launch Engineering and Testing an HTTP Client

In this episode, David talks about getting ready for the launch of PushSilver Infinite, and the unexpected engineering effort needed to make the most of a marketing initiative.

65: New PushSilver Pricing and Co-Founding KiteTail

In this episode, David shares the details behind the pricing changes he's decided on for PushSilver and talks about some of the new features and marketing strategies he's working on for the upcoming launch.

64: "We Solved Something, Maybe! Or It Might Be a Disaster!"

Adam and David are joined by Ian Landsman to talk about his latest project Thermostat.io and discuss some pricing ideas for PushSilver and KiteTail.

63: MicroConf, Dog Food, and Image Previews

In this episode, Adam and David recap their MicroConf 2017 experiences, and give some product updates.

62: Timezones, Webhook Security, and UI Decisions

In this episode, David talks about adding timezone support to Crondog, and Adam wrestles with some decisions about dealing with failed webhooks in KiteTail.

61: We're Building Products!

Adam welcomes David Hemphill back to the show, but this time as a co-host!

60: Michelle Bu - Engineering Payments at Stripe

In this episode, Adam talks to Michelle Bu of Stripe about the new Stripe Elements library, Stripe.js v3, and the Sinatra app that powers their API.

59: Jonathan Reinink - Form Hell Part 2: Complex Validation

In this episode, Adam and Jonathan continue their discussion about forms from episode 54, this time focusing on the complexities of validation.

58: Noel Rappin - Fixing Common Payment Handling Mistakes

In this episode, I talk to Noel Rappin about common mistakes developers make when handling payments on the web and how to fix them.

57: Derrick Reimer - Building and Scaling Drip

In this episode, Adam talks to Derrick Reimer about the technical challenges behind building and scaling Drip, a sophisticated email marketing automation platform.

56: Wes Bos - Getting Things Done and Building Your Own Tools

In this episode, Adam talks to Wes Bos about how he seems to get so much done, why he built his own course platform, and growing an audience.

55: Ian Landsman - Shady Marketing Tactics That Will Hurt Your Business

In this episode, Adam talks to Ian Landsman about shady marketing tactics that will turn your customers against you, and how to be more authentic with your marketing strategy.

54: Jonathan Reinink - Forms: The Worst Part of Web Dev

In this episode, Adam talks to Jonathan Reinink about dealing with common headaches when working with everyone's favorite part of web development: forms.

53: Kyle Fiedler - Design Tips and Tricks for Developers

In this episode, Adam talks to Kyle Fiedler of thoughtbot about common mistakes developers make with design, and some tips and tricks for making your designs look more professional.

52: Taylor Otwell - Patterns for Simplifying Laravel Applications

In this episode, Adam and Taylor Otwell have a discussion about strategies they use to write cleaner, simpler code when working with the Laravel framework.

51: Matt Wynne - Building the Right Thing with BDD

In this episode, Adam talks to Matt Wynne about Behavior Driven Development with Cucumber.

50: Evan You - What's Coming in Vue.js 2.0

In this episode, Adam talks to Evan You about what's coming in Vue.js 2.0.

49: Toran Billups - Test Driving the Front-end

In this episode, Adam talks to Toran Billups about the test driven development workflow he uses to build Ember applications.

48: Jessica Lord - Building Desktop Apps with Electron

In this episode, Adam talks to Jessica Lord of GitHub about building desktop applications in HTML and JavaScript using Electron.

47: Sara Soueidan - Ditching Icon Fonts for SVG

In this episode, Adam talks to Sara Soueidan about the benefits of using SVG over icon fonts, and the best workflow for using SVG in your projects.

46: Joe Ferris - Test Driven Rails

In this episode, Adam talks to Joe Ferris, CTO at thoughtbot, about the test-driven development workflow he uses to build Rails applications.

45: Derek Prior - From Rails to Phoenix

In this episode, Adam talks to Derek Prior about building web applications in Elixir with Phoenix, and how it compares to building an application in Ruby on Rails.

44: Joel Clermont - What the heck is Elm?

In this episode, Adam talks to Joel Clermont about the Elm programming language and getting started with functional programming.

43: Jonathan Snook - Managing Complexity, Design Systems, and Container Queries

In this episode, Adam talks to Jonathan Snook, author of SMACSS, about finding the balance between utility and component driven CSS approaches, design systems engineering, and using container queries to build better responsive web experiences.

42: Justin Jackson - Marketing for Developers

In this episode, Adam talks to Justin Jackson, maker extraordinaire, about how to find new product ideas, finding customers for your products, and marketing for developers.

41: Jason McCreary - Git Tips, Tricks and Workflows

In this episode, Adam talks to Jason McCreary, creator of Laravel Shift, about Git tips, tricks, and best practices, and how to develop a solid Git workflow for your team.

40: Edd Mann - You Should Switch to Postgres

In this episode, Adam talks to Edd Mann, host of Three Devs and a Maybe, about the advantages of using PostgreSQL over MySQL, common obstacles people running into when switching to Postgres, and deciding when to push work into the database instead of doing it in code.

39: Michael Feathers - First Class Error Handling, Tell Don't Ask, and Collection Pipelines

In this episode, Adam talks to Michael Feathers, author of Working Effectively with Legacy Code, about strategies for writing cleaner error handling code, the "tell don't ask" principle, and transforming data with collection pipelines.

38: J.B. Rainsberger - Unit Testability and the Universal Architecture

In this episode, Adam talks to J.B. Rainsberger about how to keep your adapter layer thin, designing unit testable code, and the importance of paying attention to how your code is changing vs. how your code looks today.

37: Chris Hartjes - Getting Started with Testing

In this episode, Adam talks to the Grumpy Programmer himself about getting started with testing PHP applications.

36: Jason McCreary - Building Laravel Shift

In this episode, Adam talks to Jason McCreary about building Shift, a tool that automates upgrading your application between framework versions.

35: Jonathan Reinink - Fixing Common API Design Mistakes

In this episode, Adam talks to Jonathan Reinink of Code Distillery about common API design challenges and how to fix them.

34: Matt Machuga - Dealing with Dependencies in Active Record Models

In this episode, Matt Machuga of Think Through Math returns to talk with Adam about design options when you find yourself wanting access to a collaborator in an Active Record or Eloquent model. They discuss the pros and cons of four specific designs, and finish off with their personal recommendations.

33: David Hemphill - Building PushSilver with Vue.js and Beard

In this episode, Adam talks to David Hemphill about his latest project PushSilver.

32: DHH - Building Basecamp 3 like a Porsche 911

DHH returns to the podcast to talk in-depth about how Basecamp 3 is designed and implemented!

31: Woody Zuill - #NoEstimates

In this episode Adam talks to Woody Zuill about software project estimation.

30: Evan You - Diving Deep into Vue.js

In this episode, Adam talks to Evan You, the creator of Vue.js. Evan talks about his time at Google Creative Lab and the sort of work that inspired him to create Vue.

29: Mark Otto - Bootstrap 4 and CSS architecture at scale

In this episode, Adam talks to Mark Otto, creator of Bootstrap and director of design at GitHub.

28: Jeffrey Way and Dave Marshall - "Don't mock what you don't own"

In this episode, Adam talks to recurring guests Jeffrey Way and Dave Marshall about "don't mock what you don't own".

27: Ben Orenstein - Outside-in TDD and Dependency Injection in Rails

In this episode, Adam talks to Ben Orenstein of thoughtbot about useful tips for writing the first few tests in your application and working your way down to the unit level by starting with acceptance tests. They also talk about why dependency injection has a bad rap in the Ruby world, and common mistakes Ben sees junior Rails developers make.

26: Josh Pigford - What do you need when you launch?

In this episode, Adam talks to Josh Pigford, founder of Baremetrics, about what you should have ready when you start a SaaS business. They also talk about how most businesses aren't doing as well as you think, content marketing, the benefits of different pricing models, and staying focused on your best idea.

25: Matt Machuga - Tips and tricks to make your code awesome

In this episode, Adam talks to recurring guest Matt Machuga about tips and tricks that lead to better code.

24: Wes Bos - What the Flexbox?!

In this episode, Adam talks to Wes Bos about solving all of your CSS problems with Flexbox. They also talk about Bootstrap 4, ReactJS, and Wes' favorite Sublime Text tips and tricks. This episode is brought to you by Laracasts.

23: Chris Hunt - How GitHub does remote work

In this episode, Adam talks to the Healthy Hacker, Chris Hunt, about how his team at GitHub works remotely. They also talk about entertaining your audience at conferences, taking a Codecation, and adventure motorcycling.

22: Corey Haines - The 4 Rules of Simple Design

In this episode, Adam talks to Corey Haines, author of "Understanding the 4 Rules of Simple Design". They talk about the importance of low-level design decisions, tricks for naming things well, why you shouldn't model your objects after the real world, and of course, Active Record.

21: Chad Pytel - Sticking to your guns

In this episode, Adam talks to Chad Pytel, CEO of thoughtbot. Chad gives tips for balancing client work with internal product work, growing your client-base without compromising your principles, and applying Jobs to be Done to new client projects.

20: Ian Landsman - Code is not a business

In this episode, Adam talks to Ian Landsman, founder of Userscape and creator of HelpSpot. Ian talks about the biggest mistakes programmers make when trying to start their own business, where to find new ideas, and why your new software product shouldn't be a SaaS app.

19: Dave Marshall - Designing Effective Tests

In this episode, Adam talks to Dave Marshall, testing guru and host of That Podcast. Dave talks to Adam about the upcoming Mockery 1.0 release and some interesting API changes destined for 2.0. They also talk about how fakes can improve your tests, fixtures vs. factories, spec-style vs xUnit style test frameworks, and mutation testing.

18: Katie Cerar - Designing and Prototyping for Clients

In this episode, Adam talks to Katie Cerar, user experience designer at Boltmade. Katie talks to Adam about running a successful kick off meeting, understanding the problems your client is trying to solve, and strategies for getting clients to keep their ideas focused. Katie also talks about the difference between a prototype and an MVP, and how to choose the right prototyping tool to get the feedback you need.

17: Adam Culp - Maximizing Your Conference Experience

In this episode, Adam talks to Adam Culp, organizer of Sunshine PHP and ZendCon. They talk about how to get into conference speaking, how to make the most of a conference as an attendee, as well as tips for running a great local user group.

16: Kent Beck - Tiny Decisions and Emergent Design

In this episode, Adam talks to Kent Beck about Smalltalk vs. Java, low-level design vs. big picture architecture, planning for the future vs. emergent design, and applying the principles of Extreme Programming in 2015.

15: Everzet - Classicist and Mockist TDD

In this episode, Adam talks to Konstantin Kudryashov, creator of Behat and BDD Practice Manager at Inviqa. Konstantin and Adam talk about the schools of TDD, how to use test doubles effectively, and common challenges people face when trying to learn TDD.

14: Taylor Otwell - Building Envoyer, Laravel 5.1 and Learning to Program

In this episode, Adam talks to Taylor Otwell, creator of Laravel. Taylor gives an in-depth behind-the-scenes look at how Envoyer is architected, and shares some new tips and tricks he's been using to keep his code simple. They also talk about the decisions behind upcoming changes in Laravel 5.1, how Taylor learned to program, and how he almost became the manager of a retirement home.

13: Phil Sturgeon - Designing and Testing APIs, Go and PHP 7

In this episode, Adam talks to Philip J. Sturgeon about designing and testing APIs at Ride. They also talk about building microservices with Go, and some of the new features coming in PHP 7.

12: Jack McDade - Building Photoshoot.io and Getting Stuff Done

In this episode, Adam talks to Jack McDade creator of Statamic, about building his latest project Photoshoot.io. They also talk about how Jack juggles design and development, and how to buckle down and get things done.

11: Jeffrey Way - "But how does it feel?"

In this episode, Adam talks with Jeffrey Way of Laracasts about learning, object oriented design, testing, API usability, and whole bunch of other stuff.

10: Type Safety Roundtable with Ryan Tablada and Matt Machuga

In this episode, Adam talks with Ryan Tablada and Matt Machuga about the philosophical differences between programming in a statically typed language vs. a dynamically typed language.

9: David Heinemeier Hansson - Architecture, Patterns and Design

They talk about the pursuit of "purity", Domain Driven Design, ActiveRecord vs DataMapper, and developing an eye for "good code".

8: Sean Devine - Ember and API first

In this episode, Adam talks with Sean Devine, host of the Ruby on Rails podcast.

7: Shawn McCool - BDD and DDD

In this episode, Adam talks with Shawn McCool about Behavior Driven Development and Domain Driven Design.

6: Chris Fidao - Servers for Hackers

In this episode, Adam talks with Chris Fidao of Userscape.

5: Ryan Singer - Jobs-to-be-Done and Product Design

In this episode, Adam talks with Ryan Singer of Basecamp about Jobs-to-be-Done thinking, UX, and product design.

4: Alex Bilbie - OAuth 2 and API Security

In this episode, Adam gets super technical with Alex Bilbie about the OAuth 2 specification.

3: Matt Machuga - Ruby, PHP, object oriented design, testing and other crap

In this episode, Adam talks with Matt Machuga of Think Through Math about being a Rubyist who still writes PHP and the differences between writing PHP like a Rubyist vs. writing PHP like a Java developer.

2: Eric Barnes - Wardrobe, Javascript and Writing

In this episode, Adam talks with Eric Barnes of Userscape about rebuilding WardrobeCMS, trends in Javascript development, and building an audience.

1: Matt Stauffer - CSS Semantics

In our very first episode, Adam talks with Matt Stauffer of Tighten Co about OOCSS, BEM, SMACSS, preprocessors, common architecture pitfalls, and CSS semantics.