Full Stack Radio - podcast cover

Full Stack Radio

Adam Wathanfullstackradio.com
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

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

Topics include: Walking through how a single screen in the app is rendered in step-by-step detail How they separate container components and presentational components to make things easier to reason about How the Redux store is organized How they handle caching data on the client and deciding when to bust the cache How the API is designed Why they are sticking with REST instead of Graphql How they handle authentication in their app Sponsors: DigitalOcean , get your free $50 credit at do.co/fulls...

Aug 28, 201956 minEp. 122

121: Benedikt Deicke - Building Userlist.io

Topics include: The risks and technical challenges of building client-side API integrations and why Benedikt decided to focus on a server-side integration for launch Building Userlist with Ember instead of trendier tools like React How the Ember app authenticates with the Rails API Strategies for keeping email deliverability high for Userlist's customers How Benedikt built Userlist's complex segmentation engine by creating a custom AST structure and compiling it to SQL How the automation and ema...

Aug 14, 201951 minEp. 121

120: Taylor Otwell - Serverless Laravel with Vapor

Topics include: What is serverless? What AWS services Vapor manages and how they are billed Using a single RDS instance with multiple databases Understanding cold boots with Lambda and how to minimize the effect they have on your application's performance Performance on Vapor How queues work with Vapor Tuning your queue concurrency based on your database connection limit Strategies for preventing your web instances and queue instances from competing for resources How scheduled tasks work with Va...

Jul 31, 20191 hr 2 minEp. 120

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

Topics include: How modernizing a Flash app drove Ryan to start building SPAs How products are really just user interfaces to the end user, and why that means it makes sense to make the UI the core of your codebase Why the backend will continue to be commoditized and application developers will be spending more and more of their time in the UI What makes something a web app instead of a website, and why almost everything is actually an app Why application developers still need to write server-si...

Jul 17, 201959 minEp. 119

118: Aaron Gustafson - Semantic HTML: The Hard Parts

Topics include: Can you have more than one "h1" on page? How important is heading order? Why not everything that looks like a heading should necessarily be a heading Why you may want to include invisible headings in some situations What the document outline is and how your use of headings impacts it How to make your heading levels dynamic to make your components more flexible What a "sectioning context" is Can you have multiple "article" elements on one page? What even is an "article" anyways? H...

Jul 03, 20191 hr 10 minEp. 118

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

Topics include: What CSS-in-JS even is What Emotion does differently than other CSS-in-JS libraries How to actually use Emotion to style your projects How the JSX pragma works and what it's for How Emotion works under the hood Performance Adding global styles to your project Style re-use and composition in Emotion Using Emotion with server-side rendering Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free DigitalOcean , get your fr...

Jun 20, 201952 minEp. 117

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

Topics include: How pattern matching works in Elixir and why it's more powerful than method overloading in other languages How Elixir's pipe operator makes the transition from OO to functional programming more natural Why you don't need to be intimidated by unfamiliar features like GenServers to use Elixir for web app development Noticeable differences between working with Rails and Phoenix and what it was like to transition How the Phoenix ORM makes n+1 queries impossible Why background tasks a...

Jun 05, 20191 hr 1 minEp. 116

115: Jason Lengstorf - Gatsby for Skeptics

Topics include: How Gatsby is more than just a static site generator How you create pages with Gatsby and how it's more powerful than traditional static site generators The benefits of having a unified data access layer for all of your content How to build dynamic applications with Gatsby Why Gatsby is actually faster than static HTML How Gatsby makes performance best practices easy Gatsby themes and why they are more exciting than traditional CMS themes Sponsors: Cloudinary , sign up and get 30...

May 22, 201955 minEp. 115

114: Sebastian De Deyne - React for Vue Developers

Topics include: How Vue focuses on making things easy at the cost of a more complex API, while React focuses on keeping things simple at the cost of a steeper learning curve How to translate Vue's computed properties to React using the useMemo hook How to translate Vue's watchers to React using the useEffect hook How to translate Vue's v-model to React using value props and event listeners How to translate Vue's events to React using callback props How to translate Vue's slots to React by passin...

May 08, 20191 hr 4 minEp. 114

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

Topics include: Why you need more than just a product, and what Justin brings to the table in his partnership with Jon How having an audience helped him get his first customers, even in a crowded market Why you should use every advantage you have to get people in the door, even though the only thing that will make customers stay is a great product with great service "People like us do things like this" vs "scratching your own itch" How their affiliate program has been working surprisingly well f...

Apr 24, 20191 hr 5 minEp. 113

112: Guillermo Rauch - Building Serverless Applications with Now

Topics include: How Now is trying to bring the CDN experience to your server-side code How the constraints of serverless can nudge you to build more robust solutions How to talk to a database in a stateless serverless environment Best practices for deploying serverless code when you have a centralized data store Why routing should be handled at the Now configuration level instead of in application code How Now functions are different from microservices, and how you share code between them How No...

Apr 10, 20191 hr 9 minEp. 112

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

Topics include: How Jeffrey has written CSS historically, and what drew him to a utility-first approach Incrementally replacing Bulma with Tailwind The importance of solidifying your Tailwind configuration before beginning to implement a design The new Tailwind color system Why choosing a color palette in advance is much better than using preprocessor functions like darken() or lighten() How duplicating your markup is often a better solution than trying to write incredibly crafty responsive CSS ...

Mar 28, 20191 hr 25 minEp. 111

110: Caleb Porzio - Embracing the Backend with Livewire

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 an alternative Walking through a worked example of using Livewire to build an interactive dropdown What's next for Livewire Sponsors: ImageCon , Cloudinary's upcomi...

Mar 14, 201959 minEp. 110

109: The Road to Tailwind CSS v1.0

🎉You can now pre-order Full Stack Radio shirts and stickers! Learn more → 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 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Rollbar , sign up at https://rollbar.com/fullstackradi...

Feb 27, 20192 hr 43 minEp. 109

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

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 using Vue for your entire UI Performance and complexity benefits of being able to prepare data for the view in a controller instead of having to build an API Strategies for dealing with things like accessing routes, checking au...

Feb 14, 20191 hr 10 minEp. 108

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

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 signatures Using tools like Firebase to avoid writing an API entirely Sponsors: Rollbar , sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open Collective Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB o...

Jan 30, 201950 minEp. 107

106: Sam Selikoff - Single Page Application Architecture

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 get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Rollbar , sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to r...

Jan 16, 201955 minEp. 106

105: Strength Training for Nerds

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 trainers trying to sell complex exercise programs Why you probably shouldn't be running for exercise What equipment y...

Jan 03, 20191 hr 3 minEp. 105

104: Jonathan Reinink - Pushing More Work to the 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 improve query performance Why the solution to n+1 problems isn't always as simple as eager-loading How subqueries work and how you can use them to avoid memor...

Dec 19, 20181 hr 2 minEp. 104

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

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? Refactoring UI topics include: Structuring the book to make it easy to read in a short amount of time An overview of the sections and chapters in the book What's covered in the screencast...

Dec 05, 20181 hr 5 minEp. 103

102: Paul Jarvis - Staying Small

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 for you How knowing your "enough" can help you build better products for the people you want to serve Why you should ignore the people who don't like what...

Nov 21, 20181 hr 6 minEp. 102

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

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 code and interface design Why you should always finish a feature before starting the next one Applying this approach to Ben's current project Tuple Sponsors: Rollbar , ...

Nov 07, 201855 minEp. 101

100: Sébastien Chopin - Building Universal Vue.js Apps with Nuxt.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 improve performance How to use the fetch method to dispatch Vuex actions Using the head method to populate head elements on a page How layouts and middleware work Opti...

Oct 24, 201849 minEp. 100

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

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 to use "getInitialProps" to tell Next.js how to render a page on the server How dynamic routing works using page-based routing What's new in Next.js...

Oct 10, 201852 minEp. 99

98: Ryan Chenkie - Securing Single Page Applications

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 Protecting against XSS attacks 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 Bo...

Sep 26, 201858 minEp. 98

97: Ryan Florence - Building Accessible UI Components

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 screenreader users The challenges of building an accessibility-focused UI library Sponsors: Rollbar , sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan...

Sep 12, 20181 hrEp. 97

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

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, 10GB of storage and 20GB of monthly bandwidth for free Netlify , incredibly powerful static site hosting for free Links: JamesClear.com Pre-order Atomic Habits , James' upcoming book James' Newsl...

Aug 29, 20181 hr 1 minEp. 96

95: Frank de Jonge - Implementing Event Sourcing

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 raise events from inside your aggregates How to persist aggregates at the end of a request What it looks like to insert new events into storage Dispatching events to consumers to produce side e...

Aug 15, 20181 hr 29 minEp. 95

94: Ben Orenstein - The Art of Pairing

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 20GB of monthly bandwidth for free Netlify , incredibly powerful static site hosting for free Links: Tuple , the remote ...

Aug 01, 201853 minEp. 94

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

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 to create products in different categories if they are for the same people Why a CSS framework and a TDD course have more in common than it sounds Why you might be happier having a job than running a business if you want to spend your time doing a specific type of work What you should be doing instead of racking your brain for app ideas Sponsors: Netlify , in...

Jul 18, 20181 hr 14 minEp. 93