Frontend First cover image

Frontend First

Latest episodes

undefined
May 8, 2019 • 1h 28min

Nathan Selikoff on Omnimodal's real-time tech stack

Topics include: 4:23 – Overview of Omnimodal's tech stack 6:38 – Omnimodal's mission: to help cities manage transportation demand 16:10 – How to ingest open transportation data and present it in real time 21:43 – How graphics-heavy OpenGL and C++ apps can benefit from web tooling 31:06 – Why state machines are used in both video game and web development 34:55 – How JavaScript UI development compares to other paradigms 38:46 – Why Ember and Rails were chosen for Omnimodal's technology needs 42:09 – Using a prediction engine to improve on transportation schedules 44:56 - How Omnimodal gets data from its hardware trackers to the Rails server 50:55 – How services like Heroku and PubNub, custom AWS code, and the concept of a Data Lake help address scalability issues 56:40 – How deploys are coordinated across multiple services 59:47 - What the development process looks like for a multi-service tech stack 1:02:10 – What the complexity breakdown is between Omnimodal's frontend and backend 1:04:07 – Lessons learned on authentication while using Auth0 1:09:31 - Lessons learned on data modeling 1:12:21 – Tech choices, escape hatches, what's worked, and what hasn't 1:20:15 – Things Nathan loves about Ember, and things that are challenging Links: Nathan on Twitter Omnimodal.io PubNub GTFS feed specification Amazon Kinesis Amazon ElastiCache AWS AppSync Auth0
undefined
May 1, 2019 • 54min

Frontend developers like us do things like this

Topics include: 3:12 – Getting Mirage 1.0 out the door, Mirage's roadmap, and how other communities treat domain modeling 15:18 – Seth Godin's blog post on tribal marketing 27:08 – Sustainability and project management in open source 48:06 – What benefits do products actually unlock? Links: Ember CLI v1.0.0-beta.1 released "People like us do things like this" by Seth Godin Justin Jackson on Full Stack Radio Transistor.fm
undefined
Apr 24, 2019 • 1h 2min

Hark! The Halting problem sings

Topics include: 0:00 – Letting your yes be yes, following through on your commitments, and paying attention to opportunity cost 6:40 – When Ember releases actually become LTS versions 9:13 – Why we need "test apps" when developing Addons 16:50 – How to use newer syntax when authoring Addons that support older Ember versions 22:07 – How angle brackets change our component implementations 31:46 – How to make the APIs of our domain components more portable 38:45 – How to reuse code that has implicit data dependencies, and the Halting problem Links: Mirage's example test apps Ember CLI Tailwind's example test apps Nested Angle Bracket video Ember Collapsible Panel
undefined
Apr 17, 2019 • 1h 54min

Edward Faulkner on Embroider, Ember CLI's modern build system

Edward Faulkner joins Sam and Ryan to chat about his work on Embroider, a new three-stage architecture that will power the next generation of the Ember CLI ecosystem. They also talk about myriad other topics, including Yarn Plug'n'Play, the benefits of debugging other people's code, how Ember is embracing the larger JavaScript ecosystem, and more. Topics include: 0:00 – What's hard about programming, why schools are bad at teaching math, and more 10:47 – Why computers should empower ordinary people, and how we can close the gap that exists between the technologically skilled and unskilled 22:12 – How the experience level of the median JavaScript developer affects tech choices made by the community 27:54 - The npm dependency graph and Yarn plug-n-play 36:24 – How to avoid making too big of a leap when improving software 41:58 – What Embroider is, and what problems it's focused on solving 46:10 – The three stages of Embroider and the V2 Addon format 1:00:15 – What Embroider enables, like tree-shaking unused Addon modules and route-level code splitting 1:21:08 – How to try Embroider out in your projects today 1:34:39 – How Ember is embracing the larger JavaScript ecosystem 1:39:35 - Why debugging other people's code is a great way to level up as a developer 1:48:28 - What Embroider's next steps are Links: Ed on Twitter Embroider Yarn Plug'n'Play
undefined
Apr 10, 2019 • 1h 32min

Derrick Reimer on SPA architecture with Elm and GraphQL

Derrick Reimer joins Sam and Ryan to chat about building his new real-time chat product Level as an SPA using Elm, Phoenix and GraphQL. He covers domain modeling in Phoenix, his experience building his first GraphQL API, type safety in Elm, and the data fetching patterns he's using to support his application's real-time functionality. Topics include: 2:01 – What is Level? What tech stack are you using to build it? 14:34 – Building the GraphQL API with Phoenix and Absinthe 37:40 – Building the frontend with Elm Links: Derrick on Twitter Level The Phoenix framework GraphQL Absinthe, GraphQL for Elixir The Elm language
undefined
Apr 4, 2019 • 57min

Do you trust your test suite?

Sam and Ryan continue their discussion from the end of Episode 54 about how much we actually rely on our test suites versus how much implicit trust we place in semver. They also talk about some new Ember Octane features as well as a data-fetching issue. Topics include: 2:00 – Do we trust our test suites? 10:00 – Breaking APIs in a changelog vs. in code 20:27 – Modifiers – they're kinda like mixins 37:17 – Named blocks 38:29 – Ember Octane & EmberConf trainings 43:15 – Fetching user-specific data in EmberMap's Video Views series Links: Chris Garrett's post on Modifiers Yehuda's Yieldable named blocks RFC Our Real-world Animations training repo Our Robust Data Fetching training repo
undefined
Mar 13, 2019 • 1h 6min

Chris Garrett on Ember Octane

Chris Garrett joins Sam and Ryan to chat about what's coming to Ember in Octane, its first edition. Chris talks about how module unification, decorators, ES6 classes, named args, angle-bracket components, template imports, modifiers, and Glimmer components offer a cohesive new programming model for Ember.js developers. Topics include: 1:18 – De-scoping Module Unification from Octane 2:25 – Run-time APIs are coming to Octane, build-time APIs are being worked on 5:04 – What's the vision behind Ember Editions, and Octane in particular? 9:41 – What's the state of decorators? 15:43 – What can't you do with static decorators that you can with dynamic decorators? 19:18 – Why do we need decorators to use ES6 classes in Ember? 20:50 – Is it possible to lint for correct usage of named args and this-dot property access? 29:30 – How did Modifiers come about, and how do they obviate the need for lifecycle methods? 38:00 – Are you concerned that a player as big as React has abandoned ES6 Classes in favor of functions? Do you think there's anything to their argument that classes are fundamentally confusing? 43:49 – What's the thinking behind the Modifier Manager API that just landed? 52:04 - Could you expand on a point you made in your blog post about how Ember.set leaks state management all across your app? 58:50 – What's the status of Glimmer components? Links: Chris Garrett on Twitter Chris's blog Modifier managers RFC Decorators for JavaScript TC39 proposal ember-on-modifier
undefined
Mar 6, 2019 • 56min

SPAs should do more than server-rendered apps, not less

Topics include: 0:00 - Module unification 1:20 - Component resolution 5:45 - Why we don't use angle brackets 9:35 - SPAs should do everything a server app can do 10:15 - Ember's Router 11:00 - Replicating the server's "fresh data" behavior 17:15 - Reloading stale data 23:50 - Fetching data 23:50 - Getting Mirage working with React and Vue 26:10 - Data loading components 29:41 - Knowing what queries are currently rendered 32:15 - Using cache keys to track what data is loaded 35:00 - Pushing data into the client with web sockets 39:00 - Describing Twitter's UI in queries 44:00 - When will data loading be abstracted away? 49:45 - Dependabot workflow 50:20 - Can you merge a PR from a bot if all the tests pass? 53:20 - Trust, but verify Links: Ember Community Survey ember-template-component-import Sam Selikoff on Twitter Ryan Toronto on Twitter
undefined
Feb 27, 2019 • 1h 1min

You still have to build two apps

Topics include: 0:00 - Refreshing an Ember app when a new version is deployed 11:05 - When SPAs become too difficult 14:50 - Building an SPA never got as quick as we'd hoped 19:20 - You're now responsible for two applications 28:00 - Integration costs 32:00 - Architecture is easier within a single monolith 40:20 - Beginners should use the same tools as experts 40:50 - Rolling advanced solutions back into the framework 47:41 - Services that are used by both beginners and experts 52:32 - Can you start an SPA without making an API server decision? Links: Rails PR for multi database support Sam Selikoff on Twitter Ryan Toronto on Twitter
undefined
Feb 13, 2019 • 1h 5min

From build-time to run-time

Topics include: 01:15 - Implementing Mirage's AddonDocs blog with GitHub issues 15:30 - Discussion forum vs. GitHub issues vs. blog comments 18:18 - Moving the blog post source to a GitHub issue 23:30 - Dynamic vs. static data, and implications for changing build-time data to run-time data. 27:40 - Downsides of run-time data 37:00 - SPA architecture and distributed systems. How does React/Vue "happy path" architecture differ from Ember's? 41:45 - Testing is the only true way to know if your dependencies work. 43:31 - Where does Ember pass the Celery Test, and where does it fail? Links: Artsy Engineering's blog post on using GitHub issues for blog post comments Utterances Tailwind's discussion forum Basecamp's vocabulary doc, from their handbook

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode