Detailed
Compact
Art
Reverse
July 6, 2020
The modern release workflow involves multiple stakeholders: engineers, management, designers, and product managers. It is a collaborative process that is often held together with brittle workflows. A developer deploys a new build to an ad hoc staging environment and pastes a link to that environment in Slack. Other stakeholders click on that link, then send
June 26, 2020
Originally published July 6, 2017. We are taking a few weeks off. We’ll be back soon with new episodes. React Native allows developers to reuse components from one user interface on multiple platforms. React Native was introduced by Facebook to reduce the pain of teams who were rewriting their user interfaces for web, iOS, and
June 17, 2020
Originally published November 21, 2019. We are taking a few weeks off. We’ll be back soon with new episodes. HTTP is a protocol that allows browsers and web applications to communicate across the Internet. Everyone knows that HTTP is doing some important work, because “HTTP” is at the beginning of most URLs that you enter
May 22, 2020
Over the last 5 years, web development has matured considerably. React has become a standard for frontend component development. GraphQL has seen massive growth in adoption as a data fetching middleware layer. The hosting platforms have expanded beyond AWS and Heroku, to newer environments like Netlify and Vercel. These changes are collectively known as the
April 21, 2020
Web development has historically had more work being done on the server than on the client. The observability tooling has reflected this emphasis on the backend. Monitoring tools for log management and backend metrics have existed for decades, helping developers debug their server infrastructure. Today, web frontends have more work to do. Detailed components in
April 15, 2020
Shopify is a platform for selling products and building a business. It is a large e-commerce company with hundreds of engineers and several different mobile apps. Shopify’s engineering culture is willing to adopt new technologies aggressively, trying new tools that might provide significant leverage to the organization. React Native is one of those technologies. React
April 3, 2020
V8 is the JavaScript engine that runs Chrome. Every popular website makes heavy use of JavaScript, and V8 manages the execution environment of that code. The code that processes in your browser can run faster or slower depending on how “hot” the codepath is. If a certain line of code is executed frequently, that code
March 25, 2020
Programming languages are dynamically typed or statically typed. In a dynamically typed language, the programmer does not need to declare if a variable is an integer, string, or other type. In a statically typed language, the developer must declare the type of the variable upfront, so that the compiler can take advantage of that information.
March 6, 2020
ReactJS developers have lots of options for building their applications, and those options are not easy to work through. State management, concurrency, networking, and testing all have elements of complexity and a wide range of available tools. Take a look at any specific area of JavaScript application development, and you can find highly varied opinions.
March 5, 2020
JavaScript fatigue. This phrase has been used to describe the confusion and exhaustion around the volume of different tools required to be productive as a JavaScript developer. Frameworks, package managers, typing systems, state management, GraphQL, and deployment systems–there are so many decisions to make. In addition to the present-day tooling choices, a JavaScript developer needs
March 4, 2020
Full-stack JavaScript applications have been possible since the creation of NodeJS in 2009. Since then, the best practices for building and deploying these applications have steadily evolved with the technology.  ReactJS created consolidation around the view layer. The emergence of AWS Lambda created a new paradigm for backend execution. Serverless tools such as DynamoDB offer
March 3, 2020
ReactJS began to standardize frontend web development around 2015. The core ideas around one-way data binding, JSX, and components caused many developers to embrace React with open arms. There has been a large number of educators that have emerged to help train developers wanting to learn React. A new developer learning React has numerous questions
March 2, 2020
When ReactJS became popular, frontend web development became easier. But React is just a view layer. Developers who came to React expecting a full web development framework like Ruby on Rails or Django were required to put together a set of tools to satisfy that purpose. A full-stack JavaScript framework has numerous requirements. How does
February 27, 2020
Slack is a messaging application with millions of users. The desktop application is an Electron app, which is effectively a web browser dedicated to running Slack. This frontend is built with ReactJS and other JavaScript code, and the application is incredibly smooth and reliable, despite its complexity. When a user boots up Slack, the application
January 16, 2020
The JavaScript ecosystem stretches across frontend, backend, and middleware. There are newer tools such as GraphQL, Gatsby, and WebAssembly. There are frameworks like React, Vue, and Angular. There is complex data handling with streams, caches, and TensorFlow.js. JavaScript is unlike any other ecosystem, because a single language can be used to construct every part of
December 3, 2019
Java has been popular since the 90s, when it started to be used as a programming language for enterprises.  Today, Java is still widely deployed, but the infrastructure environment is dramatically different. Java is often deployed to containers in the cloud. If those containers can share resources, then those containers can share the same underlying
November 22, 2019
Web applications are used on a wide variety of platforms.  On each of these platforms the web app needs to load properly and allow the user to navigate the website and interact with all of the user flows, such as sign-up, login, and the various read and write operations that make up the functionality of
November 21, 2019
HTTP is a protocol that allows browsers and web applications to communicate across the Internet. Everyone knows that HTTP is doing some important work, because “HTTP” is at the beginning of most URLs that you enter into your browser. You might be familiar with the request/response model, and HTTP request methods such as GET, PUT,
November 11, 2019
Frontend software development has become as complex as backend development. There was a time when frontend web development was simple. There was a small number of JavaScript frameworks and templating systems. Your CSS was simple configuration for the colors on your webpage. Today, there is a giant ecosystem of frontend tools, APIs, and middleware delivering
October 11, 2019
Webflow is a platform for building applications without programming. Software engineering has barely been around for 30 years. Over that period of time, there have been many attempts to create a platform that allows for the creation of software without writing a line of code. Most of these systems have not been able to fulfill
September 25, 2019
Isolation is a fundamental concept in computer science. Software workloads are isolated from each other in order to keep resource access cleanly separated.  When programs are properly isolated, it is easier for the programmer to reason about the memory safety of that program. When a program is not properly isolated, it can lead problems such
September 6, 2019
The browser has become the central application of the consumer operating system. Every piece of client software, from email to document management, has become usable through the browser. Even modern desktop software such as Slack is built using Electron, a tool for building client applications that essentially run inside of a browser without an address
July 15, 2019
Facebook was built using PHP, a programming language that was used widely in the late 90s and early 2000s. PHP allows developers to get web applications built quickly and easily, although PHP has a reputation for being difficult to scale.  In the early days of Facebook, the company was scaling rapidly on every dimension.  New
July 8, 2019
Edge computing allows for faster data access and computation. When your client application makes a request, that request might be routed to the edge. Edge servers are more numerous and more widely distributed than normal data centers, but an edge server might not have all of the data or the complete application logic for the
July 2, 2019
Google Earth allows users to explore the imagery of the real world. Imagery for Google Earth is taken from satellites, cars equipped with cameras, and other sources. Google Earth renders a data intensive 3-D model of the world on a client application such as a desktop browser or virtual reality system.  WebAssembly is a runtime
June 24, 2019
Software projects are organized and planned using project management software. Examples of project management software include JIRA, Trello, and Asana. There are hundreds of tools for managing a software project because there are infinite ways that a project could be managed. Google Docs changed project management by allowing documents to be easier to share and
June 20, 2019
WebAssembly allows for web-based execution of languages other than JavaScript. Programs written in Rust or C++ can be compiled down to WebAssembly and shipped over the browser for on-the-fly execution in a safe, memory controlled environment. WebAssembly has been in development for more than two years, and is still an immature ecosystem because building the
May 8, 2019
WebAssembly is a binary instruction format for applications to run in a memory-constrained, stack-based virtual machine. The WebAssembly ecosystem consists of tools and projects that allow programs in a variety of languages to compile into WebAssembly and run in a safe, fast, sandboxed runtime environment. WebAssembly is a transformative technology for the Internet. Most users
March 25, 2019
Upcoming events: A Conversation with Haseeb Qureshi at Cloudflare on April 3, 2019 FindCollabs Hackathon at App Academy on April 6, 2019 Coding in the browser has been attempted several times in the last decade. Building a development environment in the browser has numerous technical challenges. How does the code execute safely? How do you
March 6, 2019
WebAssembly is a runtime that lets languages beyond JavaScript to execute in frontend web applications. WebAssembly is novel because most modern frontend applications are written entirely in JavaScript. WebAssembly lets us use languages like Rust and C++ after they have been compiled down to a web assembly binary module. Language interoperability is only one part
February 22, 2019
React Native allows developers to build native applications for iOS and Android using components written in the React JavaScript framework. These ReactJS components render to native application code by going over a JavaScript bridge, a message bus that communicates between JavaScript code and native iOS or Android runtimes. For most mobile application use cases, React
January 23, 2019
React, Vue, and Angular are the most popular frontend JavaScript frameworks. Each of these frameworks lets frontend developers build components. A component is a high level visual abstraction that is used to compose a user interface. Frontend development has moved towards component-driven-development. At a typical technology company, a designer will put together a design file
December 20, 2018
Ten years ago, there was a distinction between “backend” and “frontend” developers. A backend developer would be managing the business logic and database transactions using Ruby on Rails or Java. A frontend developer would be responsible for implementing designs and arranging buttons using raw HTML and JavaScript. Today, developers can build entire applications in JavaScript.
December 14, 2018
Wes Bos has created popular courses on React, GraphQL, and JavaScript. With hundreds of thousands of students, Wes has earned a cult following for his fun, practical lessons on web development. The courses produced by Wes teach developers how to build useful applications such as a complete e-commerce store. Wes has built a career around
October 24, 2018
Engineers can build applications faster by using tools that abstract away infrastructure. Major cloud providers offer this tooling in the form of functions-as-a-service, as well as managed services such as Google BigQuery or Azure Container Instances. The term “serverless” refers to these functions-as-a-service and the managed services–because when you use these tools, you are not
October 22, 2018
Google Search is a highly interactive JavaScript application. As you enter a query, results are being automatically suggested to you before you even finish typing. When you press enter, some of your search results may be widgets that represent the weather, the price of a stock, a recipe for green bean soup, or a language
October 2, 2018
Kotlin is a statically typed programming language that started as a JVM language. It gained popularity because it reduces the amount of boilerplate code required for a typical Java project. Many of the early adopters of Kotlin were building Android apps or Java applications, but it has grown to a variety of use cases including
September 26, 2018
JavaScript performance has improved over time due to advances in JavaScript engines such as Google’s V8. A JavaScript engine performs compiler optimization, garbage collection, hot code management, caching, and other runtime aspects that keep a JavaScript program running efficiently.  JavaScript runs in browsers and servers. The resources that are available to a JavaScript engine vary
August 20, 2018
WebAssembly allows developers to run any language in a sandboxed, memory controlled module that can be called via well-defined semantics. As we have discussed in recent episodes with Lin Clark and Steve Klabnik from Mozilla, WebAssembly is changing application architectures both in and outside the browser. WebAssembly is being adopted by all of the major
August 17, 2018
WebAssembly is a low-level compilation target for any programming language that can be interpreted into WebAssembly. Alternatively, WebAssembly is a way to run languages other than JavaScript in the browser. Or, yet another way of describing WebAssembly is a virtual machine for executing code in a low level, well-defined sandbox. WebAssembly is reshaping what is
July 27, 2018
React Native allows developers to reuse frontend code between mobile platforms. A user interface component written in React Native can be used in both iOS and Android codebases. Since React Native allows for code reuse, this can save time for developers, in contrast to a model where completely separate teams have to create frontend logic
July 20, 2018
JavaScript has been the exclusive language of the web browser for the last 20 years. Whether you use Chrome, Firefox, Internet Explorer, or Safari, your browser interprets and executes code in a virtual machine–and that virtual machine only runs JavaScript. Unfortunately, JavaScript is not ideal for every task we want to perform in the browser.
April 19, 2018
Most new frontend webapps today use ReactJS. An increasing number of mobile apps are created using the cross-platform components of React Native. GraphQL, Facebook’s open source data-fetching middleware tool is being used by more and more companies, who are finding that it simplifies their development. Facebook’s open source suite of technologies created a new developer
December 21, 2017
Modern frontend development is about components. Whether we are building an application in React, Vue, or Angular, components are the abstractions that we build our user interfaces out of. Today, this seems obvious, but if you think back five years ago, frontend development was much more chaotic–partly because we had not settled around this terminology
December 1, 2017
Most user interfaces that we interact with are not animated. We click on a button, and a form blinks into view. We click a link and the page abruptly changes. On the other hand, when we interact with an application that has animations, we can feel the difference. The animations are often subtle. If you
October 2, 2017
React is a programming model for user interfaces. ReactJS is for building user interfaces for web applications. React Native is for building UI on Android or iOS. ReactVR is for building user interfaces in virtual reality. React Native was originally developed to make it easier to maintain parity between the web, iOS, and Android teams
August 24, 2017
Content websites are supported by advertising. Most of the advertisements around the internet are dynamic ad slots that change depending on the user who visits the site. Those dynamic ad slots are available to a variety of different bidders. For each ad slot, an auction occurs. The highest bidder gets to serve an ad for
August 17, 2017
GatsbyJS is a framework for building web applications for JavaScript. Gatsby’s original goal was to allow users to create super fast static web sites that could be hosted and served efficiently at a low cost. Most web pages have components from a framework like React or Angular that need to render after the user requests
August 11, 2017
Slack is an application for team communication. Users chat across mobile devices, web browsers, and a desktop application, which means Slack has three places to deploy on rather than two. And the desktop apps on Windows, Mac, and Linux are not identical, so Slack has even more places to deploy. With so many different runtime
August 10, 2017
Animations make an application more fun and engaging. For most apps, animation is an afterthought. Developers are concerned with getting the functionality right, and designers have enough work to do simply getting icons, text formatting, and page layout correct. There is also the issue of cross-device compatibility. iOS, Android, and web have different ways of
August 9, 2017
JavaScript is moving so fast. It’s not easy to keep up with all of the frameworks, build tools, and packages. No other language spans frontend to backend, mobile to web to server. Sacha Greif is an independent designer and developer most prominent in his roles as co-author of Discover Meteor and community builder at Sidebar.io,
July 7, 2017
Airbnb is a company that is driven by design. New user interfaces are dreamed up by designers and implemented for web, iOS, and Android. This implementation process takes a lot of resources, but it used to take even more before the company started using React Native. React Native allows Airbnb to reuse components effectively. React
July 6, 2017
React Native allows developers to reuse components from one user interface on multiple platforms. React Native was introduced by Facebook to reduce the pain of teams who were rewriting their user interfaces for web, iOS, and Android. Nader Dabit hosts React Native Radio, a podcast about React Native. Nader also trains companies to use React
April 11, 2017
React Native has unlocked native mobile development to web engineers who may now apply their skills to build iOS and Android applications in JavaScript. For the first time, cross platform JavaScript-based applications feel as if they were written in the native language of choice for the platforms. Businesses who choose to adopt React Native for
March 31, 2017
Brendan Eich created the first version of JavaScript in 10 days. Since then JavaScript has evolved, and Brendan has watched the growth of the web give rise to new and unexpected use cases. Today Brendan Eich is still pushing the web forward across the technology stack with his involvement in the WebAssembly specification and the
January 19, 2017
Over the past few years, React has become the most popular front end JavaScript framework. As React has matured, the open source community around React has identified areas for improvement. Since React itself is too mature to refactor completely, new projects have been started to take the best aspects of React and start from scratch.
October 25, 2016
Netflix has a highly interactive user interface. As I move my mouse around the page, hovering over titles and inspecting movie descriptions, there is a lot going on under the hood. One component of this UI is RxJS, a library for building reactive JavaScript. Reactive programming uses the observer pattern to create objects that emit
October 6, 2016
Scala is a functional programming language built on the JVM. For more than a decade, this didn’t mean anything to front end web developers. More recently, ScalaJS has brought Scala to the front end. ScalaJS is a project that compiles any Scala program down to JavaScript–so that all of your Scala programs can run on
June 13, 2016
JavaScript programming usually is done through the use of frameworks, such as ReactJS, AngularJS, and EmberJS. These frameworks abstract away some of the messy details of JavaScript, and simplify web development so that engineers can build products at a faster pace. When we build software using JavaScript frameworks, we are missing out on some of
June 6, 2016
Smart phone apps have better performance than web apps. When we have an application that we use on a regular basis, we download that application to a smart phone rather than using the browser based version on our mobile browser. Google’s Polymer Project wants to improve the gap between native app performance and mobile web
May 10, 2016
React started as just a view layer–it was the V in MVC. React has moved down the stack, with Flux, Redux, GraphQL, and Relay providing opinions for how React applications should structure their data flow. Jared Forsyth works at Khan Academy, which uses React on the front end. At Khan Academy, Jared has experimented with
April 11, 2016
“Seeing stuff happen is exciting in the early days. But when you try to be at the senior level, at the architect level, you have to understand that there is a cost to adopting a higher level abstraction.” Frontend web development was simpler in the past–CSS, HTML, and JavaScript were all you needed to know.
April 5, 2016
“JavaScript as a language is evolving year over year with new implementations and new language features, and we need to make sure we stay on top of those.” Code analysis tools can help a developer understand code. One tool for code analysis is bitHound, which provides code and dependency analysis for NodeJS applications. On today’s
March 4, 2016
“Events provide a very nice organization over persistent connections and that’s why we chose them. We think they’re also a very fundamental way of thinking about systems.” Socket.io enables realtime bidirectional communication. But what does “realtime” actually mean? Today’s guest is Guillermo Rauch, the creator of Socket.IO, a widely used technology for client server communication.
February 17, 2016
“But the bottom line is, accessibility is actually a challenge for coders, and I’ve yet to meet a coder that doesn’t like a good challenge.” Disabled individuals account for over a billion people worldwide. This represents the world’s largest minority on the Web, with $220 billion in discretionary spending power in the United States alone.
February 16, 2016
“The model-view-intent architecture is really cool and innovative – it’s basically combining the technologies of observables with the virtual DOM, and you’ve got this whole new paradigm of thinking.” Reactive programming emphasizes writing code that is readily responsive to events. It is an increasingly popular paradigm with highly interactive websites like Netflix. It draws on
February 15, 2016
“Node doesn’t have dependency hell – JavaScript absolutely does.” Node.js powers an increasing number of applications in the modern web. As node’s popularity grew, npm evolved in parallel as its default package manager and it has become a robust system for sharing and developing node programs. Yet today, npm is growing beyond its roots, and
February 12, 2016
“So much writing about tech is cheerleading – really being enthusiastic and throwing around words that don’t necessarily mean the things that people think they mean.” Lin Clark is today’s guest on Software Engineering Daily, and she joins Jeff to talk about Code Cartoons, a webcomic that explains Facebook’s open source projects like Flux and
February 11, 2016
“The smart phone itself is turned into the browser.” Continue reading…
December 29, 2015
“When you have different goals – it’s impossible to say ‘we have the best practices for doing everything’. Because the web is just so versatile.” Vue.js is a lightweight front-end JavaScript framework that makes it simple to begin prototyping and building web interfaces. Vue.js provides a flexible API for MVVM data bindings, and can serve
December 22, 2015
“I think that anybody who’s not using universal JavaScript is wasting a ton of time and a ton of money, and it’s just a silly thing to do.” Eric Elliott is a JavaScript advocate, and the author of Programming JavaScript Applications. He is also an entrepreneur tackling social issues including homelessness and inequality in the
December 21, 2015
“Part of the point of Tessel is that it just works – you don’t have to worry about it. Much in the way that you would throw your app up on Heroku.” Tessel is an open-source microcontroller that is programmable in JavaScript and compatible with Node.js. Kelsey Breseman is a hardware engineer and Steering Committee
December 9, 2015
"I have no expectation nor would this be realistic, that any one framework will ever win out. Continue reading…
December 3, 2015
“When I started React Native, everyone I talked to was like you need the primitives to be platform specific, otherwise this is too crazy, everyone’s tried the cross-platform dream – it doesn’t work.” Continue reading…
October 20, 2015
“I keep telling people that front-end and back-end shared JavaScript is a pipe dream.” Continue reading…
October 6, 2015
“Javascript is like English – it hitched itself to the most powerful horse in the history of mankind, the web, and it has really exploded since then.” Fullstack Academy is a 13-week immersive program for students to learn software engineering. Their flagship course focuses primarily on Javascript and the associated frameworks used to build real-world web applications. Continue reading…
September 21, 2015
React Native enables iOS and Android development using React. Mobile devices use a virtual machine to interpret the JavaScript into native code. Tadeu Zagallo is a Facebook engineer who works on React Native for iOS. Continue reading…
September 20, 2015
The Flux architecture is a compelling alternative to the modern-view-controller pattern when building modern web applications. Fluxxor is a set of tools for building JavaScript data layers using the Flux architecture. It was one of the earliest open-source implementations of Flux. Brandon Tilley is a software engineer who works at The Minerva Project. He is the creator of Fluxxor. Continue reading…
September 18, 2015
Flux's one way data flow solves several problems of MVC, but its complexity can be reduced in some cases. Redux is a predictable state container for JavaScript to use with React or any other view library. Dan Abramov currently works full time on Redux, React Hot Loader, and React Transform. Continue reading…
September 17, 2015
React is the product of Facebook and a large open-source community. Facebook engineering has recently produced a powerful suite of loosely coupled tools for development: React, GraphQL, Relay, React Native, and Flux Architecture. Ben Alpert is an engineer on the React Core team at Facebook. Continue reading…
September 16, 2015
React Router is a complete routing solution for ReactJS. It offers users a way to build full-fledged web apps from their React components. Michael Jackson works on React Router and is the founder of ReactJS Training. Continue reading…
August 1, 2015
Node.js is a server-side JavaScript runtime powered by V8. Yunong Xiao is a senior engineer at Netflix. He works on the website’s Node.js front-end and middle-tier services. Topics discussed: Netflix’s Node.js components Netflix’s similarities to Spotify How to scale a node application Java vs. Node.js services Node.js event loop Solutions to callback hell How Node.js changes
August 1, 2015
Mattias Petter Johansson is an engineer at Spotify. He writes about JavaScript on Quora and Twitter. Questions include: How similar is Spotify’s architecture to Netflix’s? Is there anywhere we shouldn’t use JavaScript? What is important about Meteor? How does React compare to Angular? Are engineering and art separated by a false dichotomy? Links: Netflix Architecture Mattias Functional
July 31, 2015
restify is a node.js module built to enable correct REST web services. Netflix uses restify to gain performance and visibility. Yunong Xiao, senior engineer at Netflix, talks about the incident which incited Netflix’s service migration to restify. The discussion starts with an explanation of flame graphs and evolves into a conversation about restify, and the importance of choosing the correct RESTful
July 29, 2015
TypeScript is a typed superset of JavaScript that compiles down to regular JavaScript. Jon Turner maintains the TypeScript package at Microsoft. Why is TypeScript useful? Does compile-time checking add any real efficiency? The current TypeScript compiler is written in TypeScript–how did you compile that compiler? TypeScript was created to build large, manageable JavaScript applications–how did Microsoft due that
July 28, 2015
Meteor is a full-stack web framework for building isomorphic JavaScript applications. Questions include: Is Meteor the Ruby on Rails of the JavaScript world? What is full-stack data binding? Is Meteor compatible with React? Does Meteor compete with frameworks like Express? If Meteor is open source, how does the company make money? What is the future
July 27, 2015
React.js is a JavaScript library for building user interfaces. Facebook and Instagram maintain the open-source repository and use the technology to build front-end components. Questions include: What is a virtual DOM? How does React.js make development more modular? Why is DOM manipulation so expensive? What is Facebook’s development process of React like? What is Flux
    15
    15
      0:00:00 / 0:00:00