Podcast

Full Stack Radio

A podcast for developers interested in building great software products. Every episode, Adam Wathan is joined by a guest to talk about everything from product design and user experience to unit testing and system administration.

Episodes

  • 110: Caleb Porzio - Embracing the Backend with Livewire

    Mar 14 2019

    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. Topics include: Pain points you run into when you are working in a JS based UI instead of a server-rendered UI What Livewire is and where the inspiration came from How Livewire lets you build interactive user interfaces with server-side code The challenges of stateful long-running processes in PHP and using stateless AJAX requests as...more

  • 109: The Road to Tailwind CSS v1.0

    Feb 27 2019

    🎉You can now pre-order Full Stack Radio shirts and stickers! Learn more → In this episode, the tables are turned as Sam Selikoff interviews Adam about the upcoming release of Tailwind CSS v1.0. Topics include: Semantic versioning and why there hasn't been a v1.0 release already How v1.0 will be encouraging people to leverage the default design system Breaking changes and what the upgrade story will be like What's coming after Tailwind CSS v1.0 Sponsors: Cloudinary, sign up and get...more

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

    Feb 14 2019

    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. Topics include: Why the UI fidelity threshold for building an SPA feels so low How forcing yourself to prepare data for Vue helps avoid putting too much logic into your templates Why it's still worth building your app as a traditional server-based web app, even if you are ...more

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

    Jan 30 2019

    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. Topics include: Building an API without writing any controller code Thinking of your API like a database as much as possible Modeling everything on the server as a resource, including things like S3 upload sign...more

  • 106: Sam Selikoff - Single Page Application Architecture

    Jan 16 2019

    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. Topics include: Why you should think of SPAs as desktop apps instead of web apps Strategies for pushing complexity out of your backend and on to the client Building optimistic UIs Best practices for storing and retrieving data Why you should design your SPAs with an "offline-first" mindset Sponsors: Cloudinary, sign up and...more

  • 105: Strength Training for Nerds

    Jan 03 2019

    In the spirit of the new year, Adam and Ben Orenstein talk about getting in shape through strength training. Topics include: What exercises you should focus on and why How to develop a system that will force you to make progress The importance of keeping a training journal Why full-body workouts are better than training a specific muscle group each day The importance of mobility for both training and your work life Why building strength is so important as you age Why you shouldn't trust train...more

  • 104: Jonathan Reinink - Pushing More Work to the Database

    Dec 19 2018

    In this episode, Adam talks to Jonathan Reinink about strategies for off-loading resource intensive work from your application code and into your database. Topics include: Issues you run into when you do too much work in code instead of in the database Why memory usage is just as important as query count How being smarter with your database usage can let you avoid hard problems like cache invalidation Denormalizing computable data to make it queryable Using "where not exists" strategically to...more

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

    Dec 05 2018

    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. Questions include: What's your process for getting started on a new design? How do you make your designs feel original? How do you choose fonts for a new project? How do you make complex tables look good, and how do you make them work on mobile? What's the best way to style multiple secondary actions on a page? Refacto...more

  • 102: Paul Jarvis - Staying Small

    Nov 21 2018

    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. Topics include: Why "success" shouldn't mean the same thing to everyone How to stay small without doing all the work you don't want to do yourself Why it's important to define what "enough" is for your business instead of always feeling the need to do better than you did last year Questions to ask yourself to figure out what "success" would be ...more

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

    Nov 07 2018

    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. Topics include: Why deadlines are critical Using manual processes to avoid building features entirely How launching a stripped down version of your idea can help you build the right thing Recognizing when you don't need to solve a problem yet Why you shouldn't design your entire UI up front How evolutionary design applies to both...more

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

    Oct 24 2018

    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. Topics include: The history behind Nuxt.js How Nuxt.js uses special Page components and file-based routing instead of using a traditional router Creating dynamic page-based routes without a custom server How the asyncData lifecycle hook works How server-side rendering works in Nuxt.js How Nuxt.js uses intelligent code-splitting to improv...more

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

    Oct 10 2018

    In this episode Adam talks to Tim Neutkens about Next.js, an opinionated React framework for building server-rendered client-side applications. Topics include: How Next.js is different than using create-react-app How page-based routing works in Next.js vs. a traditional router The mechanics behind how components are server-side rendered and picked up by React on the client What it really means to server-render a React app and how it's different from a traditional server-rendered web app How t...more

  • 98: Ryan Chenkie - Securing Single Page Applications

    Sep 26 2018

    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. Topics include: What JSON Web Tokens are and how to use them to authenticate users Strategies for invalidating stateless API tokens Using cookie and session authentication Using authentication-as-a-service solutions like Auth0 Proxying requests to your API to simplify CORS issues Protec...more

  • 97: Ryan Florence - Building Accessible UI Components

    Sep 12 2018

    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. Topics include: How modern JS frameworks have made the web less accessible How Reach UI is making it easier for people to build accessible components without sacrificing customizability The importance of using the correct markup How focus trapping works Adding keyboard navigation to components in a way that makes sense for screen...more

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

    Aug 29 2018

    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. Topics include: Why goals aren't useful on their own The four rules that guide human behavior Using environment design to encourage the habits you want to adopt Building habits of avoidance Why being productive is really about decision making Sponsors: Cloudinary, sign up and get 300,000 images/videos, 10...more

  • 95: Frank de Jonge - Implementing Event Sourcing

    Aug 15 2018

    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. Topics include: How to fetch and reconstitute an aggregate from its events Using generators to make it easy to transform event streams What it looks like to apply an event to an aggregate How to create events and what they look like Implementing a message repository for fetching events from storage How to ...more

  • 94: Ben Orenstein - The Art of Pairing

    Aug 01 2018

    In this episode, Adam talks to Ben Orenstein about the benefits of pair programming and how to do it effectively. Topics include: The benefits of pairing with someone more experienced than you The benefits of pairing with someone less experienced than you How pairing helps you build things faster Why pairing often removes the need for code review How to get started with pairing if you've never done it before Sponsors: Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and...more

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

    Jul 18 2018

    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. Topics include: Why you should choose a market before getting too attached to the type of product you want to create Why it can make sense ...more

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

    Jul 03 2018

    In this episode, Adam talks to Derrick Reimer about building his new app Level as an SPA using Elm, Phoenix, and GraphQL. Topics include: Why Derrick chose to build Level as an SPA Choosing Elm over React or Vue How Elm is sort of like a language and framework combined Moving to Phoenix from Rails Why getting abstractions right feels easier in a functional language How "contexts" help you organize your Phoenix code The benefits of GraphQL over REST What it looks like to implement GraphQL on t...more

  • 91: Derrick Reimer - Designing a Calmer Team Communication Platform

    Jun 20 2018

    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. Sponsors: Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for ...more

  • 90: David Hemphill - Using JSX with Vue.js

    Jun 13 2018

    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. Topics include: What even is JSX, really? Why JSX is not a templating a language How render functions work Advantages of JSX over templates How to translate template features like v-if to JSX How event listeners work with JSX JSX gotchas to watch out for Sponsors: Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandw...more

  • 89: Sam Selikoff - Choosing Ember.js in 2018

    May 23 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. Topics include: Why has Ember stuck around when other frameworks from the same era haven't? What do you get when you choose Ember that you don't get with other frameworks? How does Ember's UI layer compare to React/Vue? What choices does Ember make differently than frameworks like React and Vue? How does Ember do state management...more

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

    May 10 2018

    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. Topics include: What is Vuex and where did it come from? The benefits of centralizing all of your application's state into one place What sort of state belongs in Vuex and what state should stay local to a component What all the Vuex terminology means, like actions, mutations, getters, etc. How you initially popul...more

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

    Apr 25 2018

    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. Topics include: Why global state is better than an event bus Why and how to avoid using this.$parent Custom events vs. callback props When to use watchers and when you don't need to Why you should prefer computed properties over methods Inline templates vs. scoped slots Using components to share code instead of mixins or directives Spo...more

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

    Apr 11 2018

    In this episode, Adam talks to Jonathan Reinink about lessons learned rebuilding his SaaS app with Vue.js and Tailwind CSS. Topics include: Wrapping non-Vue libraries as Vue components to maintain a consistent paradigm Using Popper.js with Vue to build dropdowns and tooltips Using portals to build better modal components Patterns for making it easier to reuse components throughout an application Which Tailwind CSS component classes Jonathan chose to extract (and which ones he didn't) How Jona...more

  • 85: Frank de Jonge - Event Sourcing for Beginners

    Mar 30 2018

    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. Topics include: What does "event sourcing" even mean? What do terms like "aggregate" and "projection" mean in the context of event sourcing? What are the benefits of modeling something with event sourcing vs. a traditional state-based approach? How events are usually stored Why and how you mig...more

  • 84: Edd Yerburgh - Testing Vue.js Components

    Mar 14 2018

    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. Topics include: Challenges with testing Vue components prior to vue-test-utils How vue-test-utils works and what it looks like to test a component Choosing a test runner Common mistakes people make when testing their components Mocking and stubbing external dependencies Combining unit testing with snapshot testing Sponsors: Codeship, check out how t...more

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

    Feb 28 2018

    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". Topics include: What JavaScript looked like at Basecamp before Stimulus Why Basecamp chose to create a new framework instead of using React, Angular, or Vue How Basecamp uses server-rendered partials instead client-side templates Why David decided to start "On Writing Software Well" Evaluating patterns in practice and ch...more

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

    Feb 14 2018

    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. Topics include: Using animation to make interfaces easier to use The difference between animations and transitions When to use CSS animations vs. JavaScript animations Which CSS properties are safe to animate How to use techniques like FLIP to make sure your animations are performant Recom...more

  • 81: Evan You - Advanced Vue Component Design

    Jan 31 2018

    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. Topics include: What is a "higher order component"? How do you replicate the render prop pattern from React with Vue? Using scoped slots to build components with no UI Using render functions without using JSX How Vue's built-in components like <transition> work under ...more

  • 80: Tom Schlick - Building Multitenant Applications

    Jan 17 2018

    In this episode, Adam talks to Tom Schlick about tackling challenges faced when building multitenant apps. Topics include: What makes an application "multitenant" really? Choosing between a shared database or multi-database setup Approaches for identifying the current tenant Performance considerations How multitenancy impacts how you integrate with external services Sponsors: Codeship, check out how they performed in Forrester's latest Continuous Integration Tools report Rollbar, sign up...more

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

    Dec 21 2017

    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. Kent gives a behind-the-scenes look at how the library uses the render prop pattern to allow maximum customizability without complex configuration. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Codeship, check out how they performed in Forrester's latest Continuous Integra...more

  • 78: Ben Orenstein - Our All-Time Favorite Refactorings

    Dec 06 2017

    In this episode, Adam and Ben Orenstein share nine of their favorite refactorings that you can use to clean up your code. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Codeship, check out how they performed in Forrester's latest Continuous Integration Tools report Links: Refactoring Rails, Ben's refactoring course The 30 Day Code Quality Challenge, Ben's free 30-day code quality course Refactoring from Good to Great, Ben's p...more

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

    Nov 21 2017

    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. Topics include: Why Tailwind doesn't include buttons or forms Is Tailwind for front-end developers or back-end developers? Best practices around extracting component classes Using Tailwind with existing CSS or on top of other frameworks Optimizing Tailwind's generated file size New features planned for upcoming...more

  • 76: Tailwind CSS vs. the World

    Nov 08 2017

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Codeship, check out how they performed in Forrester's latest Continuous Integration T...more

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

    Oct 25 2017

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Diana's personal website Primer, GitHub's design system Primer modules on GitHub "Introducing Design Systems into Chaos", Diana's recent talk on her wo...more

  • 74: Steve Schoger - Tactical Design Advice for Developers

    Oct 12 2017

    In this episode, Adam is joined by Steve Schoger to talk about five ways developers can get better at designing their own projects. Topics include: How to pick great fonts Choosing a color scheme for your project Designing in greyscale Recreating existing interfaces from scratch Recommended design tools What you should design first on a new page Strategies for making things look professional without graphic design skills Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to...more

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

    Sep 27 2017

    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. Topics include: Why you shouldn't start with SaaS How to find ideas from client projects What to do before you make a landing page Why your first product doesn't have to be the one that makes you rich Using open source to build an audience Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days...more

  • 72: Taylor Otwell - Testing Laravel Applications

    Sep 13 2017

    In this episode, Adam is joined by Taylor Otwell, the creator of Laravel, to talk about their approaches to testing Laravel applications. Topics include: How their approaches have changed over time Feature tests vs. unit tests, when to use each Testing code that interacts with external services Using fakes instead of mocks Contract tests Testing view data vs. rendered HTML Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Codesh...more

  • 71: Building a CSS Framework with PostCSS

    Aug 30 2017

    In this episode, Adam is joined by Matt Stauffer of Tighten to talk about building a CSS framework with PostCSS. Topics include: What is PostCSS, really? PostCSS vs. other preprocessors like Less and Sass Examples of things PostCSS can do How to use PostCSS to add your own features to CSS How to disguise custom features as valid CSS so PostCSS will parse it Porting Tailwind CSS from Less to PostCSS and why it's been awesome Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio...more

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

    Aug 16 2017

    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. Topics include: General project structure Dealing with initial load flicker Sharing routes between Vue and your server Handling authorization rules on the client Comparing strategies for getting data into your Vue components Best practices for sharing state between sibling components Signs you should extract a child component Using Vue to ...more

  • 69: Hybrid Mobile Apps with Turbolinks and Laravel

    Aug 02 2017

    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. They also discuss the benefits of using a Turbolinks-style approach for small teams, and how Turbolinks on mobile compares to other popular tools like Ionic. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackrad...more

  • 68: Building Interfaces with Utility-First CSS

    Jul 19 2017

    In this episode, Adam welcomes back Jonathan Reinink to talk about implementing designs with a utility-first approach to CSS. They talk about the problems this approach has solved for them, the surprising workflow benefits, and some tips and tricks for using this approach well. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Codeship Links: BEM, the Block Element Modifier CSS methodology About HTML semantics and front-end arc...more

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

    Jun 21 2017

    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. Adam talks about some of the UI design challenges he and Steve have been trying to solve, and shares some of the creative solutions they came up with. Sponsors: Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Rollbar, sign up at https://rollba...more

  • 66: Pre-Launch Engineering and Testing an HTTP Client

    Jun 08 2017

    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. Adam gives an update on gracefully handling errors in the KiteTail checkout process, launching Zttp as an open-source package, and how he used Lumen to power the Zttp integration test suite. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at ...more

  • 65: New PushSilver Pricing and Co-Founding KiteTail

    May 24 2017

    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. Adam shares the details behind his decision to bring on a co-founder for KiteTail, talks the collaboration process when working on an app with somebody else, and give an update on where he's at with getting KiteTail integrated into the Test-Driven Laravel course app. Sponsors: Hired, sign...more

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

    May 09 2017

    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. Topics include: Thermostat.io and NPS surveys Charging more vs. charging less Finding a niche for PushSilver and how to appeal to that niche One-time purchase lifetime plans for SaaS Percentage-based vs. tiered pricing Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up...more

  • 63: MicroConf, Dog Food, and Image Previews

    Apr 27 2017

    In this episode, Adam and David recap their MicroConf 2017 experiences, give some product updates, and chat about topics like: Dogfooding Cron Dog in PushSilver Dealing with complex validation Why we hate auto-saving UIs Validation issues when supporting "draft" models Expanding the scope of KiteTail Different ways to handle client-side image preview Building a Cron Dog SDK Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired,...more

  • 62: Timezones, Webhook Security, and UI Decisions

    Apr 12 2017

    In this episode, David talks about adding timezone support to Crondog, and Adam wrestles with some decisions about dealing with failed webhooks in KiteTail. We also talk a lot about different strategies for securing webhooks, and what we're looking forward to at MicroConf. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job th...more

  • 61: We're Building Products!

    Mar 30 2017

    Adam welcomes David Hemphill back to the show, but this time as a co-host! David introduces Crondog, the new product he's working on to help developers manage dynamic recurring tasks in their applications. Adam introduces KiteTail, an app that let's you create webhook-driven hosted checkout pages; something he wishes he'd had when he launched his course. From here on out, Full Stack Radio will follow David and Adam's journey building these new products; discussing interesting technical, desig...more

  • 60: Michelle Bu - Engineering Payments at Stripe

    Mar 15 2017

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Michelle on Twitter Stripe Elements Stripe's Engineering Blog Stripe Checkout Stripe Radar Building St...more

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

    Feb 24 2017

    In this episode, Adam and Jonathan continue their discussion about forms from episode 54, this time focusing on the complexities of validation. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Form Requests in Laravel After Validation hooks in Laravel "Stripe CVC and ZIP checks can be bypassed" foru...more

  • 58: Noel Rappin - Fixing Common Payment Handling Mistakes

    Feb 08 2017

    In this episode, I talk to Noel Rappin about common mistakes developers make when handling payments on the web and how to fix them. As I mention in the show, if you've been thinking about checking out Test-Driven Laravel, the course is still available at the early access price for the next few weeks: Learn more about Test-Driven Laravel Early Access Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hir...more

  • 57: Derrick Reimer - Building and Scaling Drip

    Jan 25 2017

    In this episode, Adam talks to Derrick Reimer about the technical challenges behind building and scaling Drip, a sophisticated email marketing automation platform. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Drip Scaling SaaS, Derrick's blog The Drip stack: Ruby on Rails AWS PostgreSQL Sid...more

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

    Jan 05 2017

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Test-Driven Laravel Early Access, Adam's new TDD course wesbos.com, Wes' blog and personal website JavaScript...more

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

    Dec 07 2016

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Test-Driven Laravel Early Access, Adam's TDD course UserScape, Ian's busine...more

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

    Nov 18 2016

    In this episode, Adam talks to Jonathan Reinink about dealing with common headaches when working with everyone's favorite part of web development: forms. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Putting Your Laravel Controllers on a Diet, an older blog post by Adam on form objects Form Reque...more

  • 53: Kyle Fiedler - Design Tips and Tricks for Developers

    Nov 02 2016

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Kyle's personal website thoughtbot on Dribbble Design for Developers ...more

  • 52: Taylor Otwell - Patterns for Simplifying Laravel Applications

    Oct 18 2016

    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. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Hired, sign up at https://www.hired.com/fullstackradio to double your signing bonus to $2000 if you get a job through Hired Links: Test Driven Laravel, Adam's upcoming video course Laravel Laravel Valet Laravel Spark Laravel P...more

  • 51: Matt Wynne - Building the Right Thing with BDD

    Oct 05 2016

    In this episode, Adam talks to Matt Wynne about Behavior Driven Development with Cucumber. Topics include: What exactly is BDD? Is BDD a technical or non-technical practice? How do you get started with BDD? How do you keep the number of system tests low to keep your test suite fast? What's your strategy for dealing with external services in acceptance tests? What are the advantages of using Cucumber even as a solo developer working on a side project? Sponsors: Rollbar, sign up at https:/...more

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

    Sep 21 2016

    In this episode, Adam talks to Evan You about what's coming in Vue.js 2.0. Topics include: The motivation for rewriting Vue.js from scratch What is a virtual DOM and what are the benefits? How does Vue.js 2.0 stack up performance wise? (spoiler alert, it's fast) When should you use templates vs. a render function? Why two-way props have been deprecated and what you should do instead Best practices for dealing with custom component events The 1.0 to 2.0 upgrade path Building native mobile appl...more

  • 49: Toran Billups - Test Driving the Front-end

    Sep 07 2016

    In this episode, Adam talks to Toran Billups about the test driven development workflow he uses to build Ember applications. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Shippo, try out the Shippo API for free at <goshippo.com> Links: Test Driven Laravel, Adam's upcoming video course Ember.js QUnit testing framework Ember Testing Documentation Toran's TDD talk at EmberConf 2015 Outside-In TDD presentation, one of Toran's...more

  • 48: Jessica Lord - Building Desktop Apps with Electron

    Aug 23 2016

    In this episode, Adam talks to Jessica Lord of GitHub about building desktop applications in HTML and JavaScript using Electron. Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Shippo, try out the Shippo API for free at goshippo.com Links: Electron Electron Blog Atom Electron API Demos Photon, Electron UI kit Built on Electron, Electron app directory Mojibar, emoji searcher for OSX HyperTerm, JS/HTML/CSS terminal Nylas N1, ema...more

  • 47: Sara Soueidan - Ditching Icon Fonts for SVG

    Aug 10 2016

    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. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Sara's Blog SVG vs Icon Fonts Cage Match grunticon A Designer's Guide to Grumpicon Making the Switch Away from Icont Fonts to SVG A complete guide to SVG fal...more

  • 46: Joe Ferris - Test Driven Rails

    Jul 28 2016

    In this episode, Adam talks to Joe Ferris of thoughtbot about the test-driven development workflow he uses to build Rails applications. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Test Driven Laravel, Adam's latest project Giant Robots podcast How We Test Rails Applications on the thoughtbot blog Capybara Capybara WebKit RSpec factory_girl The Rai...more

  • 45: Derek Prior - From Rails to Phoenix

    Jul 13 2016

    In this episode, Adam talks to Derek Prior of thoughtbot about building web applications in Elixir with Phoenix, and how it compares to building an application in Ruby on Rails. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: thoughtbot on Elixir and Phoenix The Bikeshed Podcast Exercism.io Elixir, the functional programming language Phoenix, the Elix...more

  • 44: Joel Clermont - What the heck is Elm?

    Jun 29 2016

    In this episode, Adam talks to Joel Clermont about the Elm programming language and getting started with functional programming. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Joel's Blog The Elm Homepage The ML language) The Elixir language Exercism.io Richard Feldman, working on "Elm in Action" book "What is functional programming?" blog series by ...more

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

    Jun 15 2016

    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. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Snook's Blog SMACSS, Jonathan's book Atomic CSS "Staffing a D...more

  • 42: Justin Jackson - Marketing for Developers

    May 24 2016

    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. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Refactoring to Collections, Adam's book Justin's Blog Marketing for Developers, Justin's latest book MegaMaker Podcast Build and Lau...more

  • 41: Jason McCreary - Git Tips, Tricks and Workflows

    May 04 2016

    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. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Refactoring to Collections, Adam's book Laracon EU 2016 Pro Git, free online Git book git add -p "How to Write a Git Commit Message",...more

  • 40: Edd Mann - You Should Switch to Postgres

    Apr 19 2016

    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. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Refactoring to Collections, Adam's b...more

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

    Apr 05 2016

    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. Sponsors: Laracasts, use coupon code FULLSTACK2016 for 50% off your first month Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Refactoring to Collections, Adam's book Michael's Blog r7k, Michael's...more

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

    Mar 23 2016

    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. This episode is brought to you by Laracasts. Links: J.B.'s Blog Integrated Tests are a Scam Mock Roles, not Objects The Four Elements of Simple Design Ask J.B. a question J.B.'s Intro to TDD Course Sponsored by Laracasts

  • 37: Chris Hartjes - Getting Started with Testing

    Mar 09 2016

    In this episode, Adam talks to the Grumpy Programmer himself about getting started with testing PHP applications. Topics include: Recommended testing tools PHPUnit vs. phpspec Mockery vs. Prophecy The benefits of defensive programming How to convince your manager to let you write tests This episode is brought to you by Laracasts. Links: Minimum Viable Tests, Chris' new book Grumpy Learning, Chris' personal website PHPUnit testing framework phpspec testing framework Mockery test double l...more

  • 36: Jason McCreary - Building Laravel Shift

    Feb 25 2016

    In this episode, Adam talks to Jason McCreary about building Shift, a tool that automates upgrading your application between framework versions. This episode is brought to you by Laracasts. Links: Shift Laravel PocketBracket Laravel Cashier Abstract Syntax Tree Sorted sets in Redis Sponsored by Laracasts

  • 35: Jonathan Reinink - Fixing Common API Design Mistakes

    Feb 12 2016

    In this episode, Adam talks to Jonathan Reinink of Code Distillery about common API design challenges and how to fix them. Topics include: Does it make sense to scope resources to the authenticated user or should you always use sub-resources? When to use nested resources and when to avoid them Strategies for dealing with actions that don't seem to fit into REST Breaking the mapping between your API and your database Using singular sub-resources and optional fields to simplify your responses ...more

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

    Jan 27 2016

    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. Topics include: Are facades and service location automatically bad? Are NounVerber classes anti-OO? Adding a layer of composition to create domain models with dependencies Using method injection...more

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

    Jan 12 2016

    In this episode, Adam talks to David Hemphill about his latest project PushSilver. Topics include: Deciding when to build something yourself vs. paying for something off the shelf Choosing a Javascript framework for more traditional server rendered apps Vue.js compared to Angular and Ember The advantages of using a utility-focused CSS approach Distributing front-end libraries This episode is brought to you by Laracasts. Links David's personal site PushSilver Laravel PHP Framework Digita...more

  • 32: DHH - Building Basecamp 3 like a Porsche 911

    Dec 22 2015

    DHH returns to the podcast to talk in-depth about how Basecamp 3 is designed and implemented! Topics include: Why Basecamp is a "majestic monolith", and the impact of organizational shape and size on technical decision making in product development How ActionCable works, and where Basecamp 3 uses websockets that you might not expect Strategies for avoiding duplication in client-side and server-side code The automated testing strategy for Basecamp 3, and how it's influencing the future of test...more

  • 31: Woody Zuill - #NoEstimates

    Dec 09 2015

    In this episode Adam talks to Woody Zuill about software project estimation. They talk about the #NoEstimates hash tag, and what it means and where it came from. They also talk about ways to manage software projects without worrying about estimation, and alternative ways to make the decisions that estimates are usually used for. This episode is brought to you by Laracasts. Woody's #NoEstimates blog posts "What price estimation?" by Neil Killick "What is software design?" by Jack Reeves The Mo...more

  • 30: Evan You - Diving Deep into Vue.js

    Nov 24 2015

    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. He also explains in depth how data binding works in Vue, and how it's different and more performant than Angular. Additionally, Evan discusses the benefits of Vue over React, why Vue works so well in both SPAs and traditional server-side web applications, and strategies for testing Vue components. This episode is brought to you by...more

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

    Nov 10 2015

    In this episode, Adam talks to Mark Otto, creator of Bootstrap and director of design at GitHub. They talk about the brand new alpha release of Bootstrap 4 and some of the most significant changes. They also talk about choosing units, when to use utility classes, and the importance of a component based CSS strategy. This episode is brought to you by Laracasts. Mark's blog Bootstrap 4 CSS Stats Parker, CSS analysis tool Code Guide, Mark's HTML and CSS standards WTF, HTML and CSS?, Mark's colle...more

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

    Oct 27 2015

    In this episode, Adam talks to recurring guests Jeffrey Way and Dave Marshall about "don't mock what you don't own". They talk about how to design code that needs to work with external services, how you should test that code, and the pitfalls you run into when you use mocks incorrectly in your test suite. This episode is brought to you by Laracasts. Mock roles not objects, the original paper Integrated tests are a scam by J.B. Rainsberger Eric Evans' Domain Language e-course Effective tests: ...more

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

    Oct 13 2015

    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. This episode is brought to you by Laracasts. Ben's blog Upcase DHH on "Dependency injection is not a virtue" A criticism of DHH's post on Dependency In...more

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

    Sep 29 2015

    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. This episode is brought to you by Laracasts. Baremetrics "How to get startup insurance and avoid getting sued into oblivion" Open Startups DHH on The Secret to Making Money Online "Creati...more

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

    Sep 15 2015

    In this episode, Adam talks to recurring guest Matt Machuga about tips and tricks that lead to better code. They talk about bringing functional programming concepts to OO, simple patterns for cleaning up typical MVC web app code, and about how imposing crazy rules like banning conditionals and loops can lead to creative solutions that change the way you think about solving problems. They also get a little too excited about anonymous functions and compositional chains. This episode is brought t...more

  • 24: Wes Bos - What the Flexbox?!

    Sep 01 2015

    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. Wes' Blog "What the Flexbox?!", Wes' Flexbox training course Bootstrap 4 alpha Flexbugs Solved by Flexbox Firefox Developer Edition React Wes' Sublime Text book Alfred GhostText Sponsored by Laracasts

  • 23: Chris Hunt - How GitHub does remote work

    Aug 04 2015

    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. This episode is brought to you by Hired. Healthy Hacker, Chris' podcast "Solving the Rubik's Cube Blindfolded" and more of Chris' talks "How we use Pull Requests to build GitHub" "You should take a Codecation" Ben Orenstein's Codecation presentation Trailmix Chris' Motorcycle...more

  • 22: Corey Haines - The 4 Rules of Simple Design

    Jul 21 2015

    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. This episode is brought to you by Hired. Hearken Understanding the 4 Rules of Simple Design Corey's Blog Corey's post on comparing test run speeds Refactoring to Patterns by Josh Kerievsky Maintaing Balance While R...more

  • 21: Chad Pytel - Sticking to your guns

    Jul 07 2015

    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. This episode is brought to you by Hired. thoughtbot thoughtbot's Playbook The Product Design Sprint on the Giant Robots blog Converting to Job Stories on the Giant Robots blog FormKeep, thoughtbot's form endpoint service Tropos, thoughtbot's open so...more

  • 20: Ian Landsman - Code is not a business

    Jun 23 2015

    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. This episode is brought to you by Hired. Userscape HelpSpot Snappy Ian's Blog Bootstrapped.fm, Ian's bootstrapping podcast "10 tips for moving from programmer to entrepreneur" "What they never told you about handling B2B transa...more

  • 19: Dave Marshall - Designing Effective Tests

    Jun 09 2015

    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. This episode is brought to you by Hired. Dave's Blog That Podcast Mockery on GitHub Uncle Bob on writing your own test doubles Behat Humbug mutation testing li...more

  • 18: Katie Cerar - Designing and Prototyping for Clients

    May 27 2015

    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. This episode is brought to you by Hired. The Opportunity Analysis Canvas by James ...more

  • 17: Adam Culp - Maximizing Your Conference Experience

    May 12 2015

    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. This episode is brought to you by Hired. Adam's Tech Blog Adam's Running Blog Run Geek Radio ZendCon Sunshine PHP SoFloPHP "Help Me Abstract" by Kayla Daniels "Refactoring from Good to Great" by Ben Orenstein ZendCon 2015 Call For Papers Sponsored by Hired...more

  • 16: Kent Beck - Tiny Decisions and Emergent Design

    May 05 2015

    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. This episode is brought to you by Hired. Kent's Facebook Blog Smalltalk Best Practice Patterns "Agile is Dead (Long Live Agility)" by Dave Thomas Extreme Programming Screenhero "Continuous Delivery" by Jez Humble "Structured Design" Kent's TDD Screencast Series Sponsored by Hir...more

  • 15: Everzet - Classicist and Mockist TDD

    Apr 20 2015

    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. This episode is brought to you by Hired. everzet on Twitter Inviqa "Design How Your Objects Talk Through Mocking" presentation "Test Driven Development: By Example", by Kent Beck "Growing Object Oriented Software Guided By Tests", by Steve Fr...more

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

    Apr 07 2015

    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. This episode is brought to you by Hired. Laravel Envoyer, Taylor's latest project Laravel Forge Pusher Authy L...more

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

    Apr 02 2015

    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. This episode is brought to you by Hired. Phil's Blog Ride Go JSON Patch RFC Recent changes to JSON API Troy Hunt on API versioning "Build APIs You Won't Hate", Phil's book "Dredd: Do Your HTTP API Justice" HATEOAS RAML "Smalltalk Best Practice Patterns" by Kent Beck Sponsored by Hired

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

    Mar 23 2015

    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. This episode is brought to you by Hired. Photoshoot.io Statamic Envoyer, designed by Jack Laravel 5 Homepage, designed by Jack Wilderborn, Jack's company Jack's personal site Interview at Ways We Work Sponsored by Hired

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

    Mar 09 2015

    In this episode, Adam talks with Jeffrey Way of Laracasts about learning, object oriented design, testing, API usability, and whole bunch of other stuff. This episode is brought to you by Hired. Laracasts Temporal Databases Object Thinking "Is TDD Dead" with Martin Fowler, Kent Beck, and David Heinemeier Hannson The $invoice->download() incident A bit on verb class names (scroll to "Verb-first classes") Sponsored by Hired

  • 10: Type Safety Roundtable with Ryan Tablada and Matt Machuga

    Feb 23 2015

    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. They talk about things like explicit interfaces vs. duck typing, function calling vs. message passing, and some of the recent RFCs around optional typing in the PHP community. This episode is brought to you by Hired. J# Hack DHH's "Why Ruby?" Keynote at RubyConf X Design by Contract in Eiffel Type Hinting in PHP...more

  • 9: David Heinemeier Hansson - Architecture, Patterns and Design

    Feb 11 2015

    In this episode, Adam talks with David Heinemeier Hansson, partner at Basecamp and creator of Ruby on Rails. They talk about the pursuit of "purity", Domain Driven Design, ActiveRecord vs DataMapper, and developing an eye for "good code". DHH's Blog "Writing Software" keynote DHH's 5 most influential programming books Transitioning to SCSS at Etsy Jason Fried on Rebuilding Basecamp The Big Rewrite, revisited

  • 8: Sean Devine - Ember and API first

    Feb 01 2015

    In this episode, Adam talks with Sean Devine, host of the Ruby on Rails podcast. Sean gives Adam an introduction to building applications with Ember, and how it's different than the way you might sprinkle AngularJS into a mostly server-side app. They talk about why your Ember apps shouldn't be mixed in with your server-side code, and the advantages that come along with building a server-side API with no front end of it's own. Ember The Road to Ember 2.0 Ember Data JSON API Sean's blog Ruby on ...more

  • 7: Shawn McCool - BDD and DDD

    Jan 19 2015

    In this episode, Adam talks with Shawn McCool about Behavior Driven Development and Domain Driven Design. They talk about how you can use these ideas to better understand your clients' needs and to build software that closely models their business. They also talk about where these ideas don't work so well, and some of the challenges and trade-offs you face when trying to build software this way. Shawn's blog The RSpec Book everzet's Introduction to BDD everzet on Modelling by Example Domain Dr...more

  • 6: Chris Fidao - Servers for Hackers

    Jan 05 2015

    In this episode, Adam talks with Chris Fidao of Userscape. They talk about things every web developer should know about server administration, platform-as-a-service vs. self-hosting, Ansible, Docker, and more. Servers for Hackers Newsletter Servers for Hackers Book Chris' blog Ansible Docker Forge "Scaling PHP Applications" by Steve Corona James Turnbull's Books

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

    Dec 19 2014

    In this episode, Adam talks with Ryan Singer of Basecamp about Jobs-to-be-Done thinking, UX, and product design. Ryan's blog "Jobs-to-be-Done" collection on Medium The Milkshake Video Ryan's Peepcode Play-by-Play Ryan's post on affordance vs. styling "Notes on the Synthesis of Form" by Christopher Alexander "Getting Real" by Basecamp/37signals "Domain Driven Design" by Eric Evans

  • 4: Alex Bilbie - OAuth 2 and API Security

    Dec 08 2014

    In this episode, Adam gets super technical with Alex Bilbie about the OAuth 2 specification. They talk about the different grant types and what they're each appropriate for, as well as discuss some potential API security strategies for one of Adam's personal projects. Alex's blog Alex's PHP OAuth2 Server package "OAuth and Single Page JavaScript Web-Apps" Alex's upcoming OAuth book

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

    Nov 17 2014

    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. They also talk about common struggles when learning new things, and trying to remain pragmatic while still pushing the boundaries of what you know. Matt's personal website Matt's courses at TutsPlus DHH's "Why Ruby?" Talk Array#forty_two Giant Robots Podcast DHH on Dependency Injection "Too F...more

  • 2: Eric Barnes - Wardrobe, Javascript and Writing

    Nov 03 2014

    In this episode, Adam talks with Eric Barnes of Userscape about rebuilding WardrobeCMS, trends in Javascript development, and building an audience. Eric's blog Laravel News Rebuilding Wardrobe Snappy Laravel Forge Sneak peek at Angular 2.0 Removing Batman.js at Shopify

  • 1: Matt Stauffer - CSS Semantics

    Oct 18 2014

    In our very first episode, Adam talks with Matt Stauffer of Tighten Co about OOCSS, BEM, SMACSS, preprocessors, common architecture pitfalls, and CSS semantics. "Organizing CSS: OOCSS, SMACSS, and BEM" by Matt Stauffer Nicole Sullivan on Media Objects SMACSS "MindBEMding" "Bootstrap without all the debt" "Medium's CSS is actually pretting f***ing good" "About HTML semantics and front-end architecture"