Building a Better Web
June 11–12, 2018: Training
June 12–14, 2018: Tutorials & Conference
San Jose, CA

Schedule: Technical sessions

9:00am–12:30pm Tuesday, June 12, 2018
Performance and UX
Location: 210 B/F
Rachel Krause (Nielsen Norman Group)
Average rating: ****.
(4.80, 5 ratings)
To create a successful product, you need a solid understanding of your users. The key to success? Collaboration. Rachel Krause walks you through a collaborative process for creating a product users will love, from establishing users to creating a design that can be taken right into development without the need for high-fidelity mockups or detailed documentation. Read more.
9:00am–12:30pm Tuesday, June 12, 2018
Accessibility
Location: 210 C/G
Nicolas Steenhout (Part of a Whole)
Average rating: *****
(5.00, 5 ratings)
Don't be daunted by web accessibility testing. Nicolas Steenhout outlines an accessibility testing workflow that can be integrated in your day-to-day coding or testing workflows. You'll review automated versus manual testing and learn how to use a variety of testing tools on real-life sites. Read more.
9:00am–12:30pm Tuesday, June 12, 2018
Web services and APIs
Location: 210 D/H
Dan Shappir (Wix)
Average rating: *****
(5.00, 15 ratings)
Performance is at the forefront of many, if not most, web development projects. Fortunately, modern browsers provide a wealth of performance-related information and services, which can be used to optimize page load speed and responsiveness. Dan Shappir offers an overview of the aptly named Web Performance API and shows how to best use it to extract detailed performance information. Read more.
9:00am–12:30pm Tuesday, June 12, 2018
Future JS and Functional
Location: San Jose Ballroom 1-3 (Marriott)
Jeremy Fairbank (Test Double)
No runtime exceptions, no "undefined is not a function," no JavaScript fatigue—Elm is a functional programming language for building resilient frontend applications. Join Jeremy Fairbank to get hands-on experience with Elm and quickly learn how to build fast and safe applications with Elm's framework, the Elm Architecture. Read more.
1:30pm–5:00pm Tuesday, June 12, 2018
Frameworks and Libraries
Location: 210 D/H
Average rating: ***..
(3.00, 9 ratings)
Luca Mezzalira walks you through reactive programming using two different frameworks: Vue.js and MobX. You'll start with a basic example that will be extended during the workshop, adding new functionalities and analyzing how the reactive approach helps in your frontend projects. Read more.
1:30pm–5:00pm Tuesday, June 12, 2018
Future JS and Functional
Location: San Jose Ballroom 1-3 (Marriott)
Scott Davis (ThoughtWorks)
Average rating: *****
(5.00, 1 rating)
Your web browser doesn't have a cute name like Alexa, Siri, or Cortana, but it can be just as talkative. Scott Davis explains why your smartphone, with its built-in speaker and microphone, is a perfect device for building a browser-based conversational UI. Read more.
9:00am–9:40am Wednesday, June 13, 2018
Future JS and Functional
Location: 210 B/F
Sasha Aickin (Self-employed)
Average rating: *****
(5.00, 5 ratings)
WebAssembly has been hailed in some quarters as the next JavaScript, but the truth is much more complicated. Sasha Aickin outlines what WebAssembly is good for right now in today's shipping browsers. Through the lens of a project ported from JavaScript to WebAssembly, Sasha details when it is practical to use WebAssembly and when it is not. Read more.
9:00am–9:40am Wednesday, June 13, 2018
Architecture and microservices
Location: 212 A/B
Rachel Myers (Google), Emily Nakashima (Honeycomb)
Average rating: ****.
(4.71, 7 ratings)
Specialization among engineers and increasing levels of abstraction have created a situation in which almost no one has a complete view of how data moves through an entire system, end to end. We’ve all become distributed systems engineers, intentionally or not. Rachel Myers and Emily Nakashima detail tools and skills we can use to get ourselves out of the corner we’ve boxed ourselves into. Read more.
9:50am–10:30am Wednesday, June 13, 2018
Performance and UX
Location: 210 A/E
Nic Jansma (Akamai), Charles Vazac (Akamai)
Average rating: *****
(5.00, 6 ratings)
Nic Jansma and Charles Vazac perform an honest audit of several popular third-party libraries to understand their true cost to your site, exploring loading patterns, SPOF avoidance, JavaScript parsing, long tasks, runtime overhead, polyfill headaches, security and privacy concerns, and more. They also share tools to help you decide if a library’s risks and unseen costs are worth it. Read more.
9:50am–10:30am Wednesday, June 13, 2018
Future JS and Functional
Location: 210 B/F
Kyle Shevlin (Formidable Labs)
Average rating: ****.
(4.58, 12 ratings)
Functional programming is all the rage these days, but with lingo like "lambdas," "functors," and "monads," it can be intimidating to get started. Join Kyle Shevlin to learn just enough functional programming for you and your team to get started without getting lost in the vernacular. Read more.
9:50am–10:30am Wednesday, June 13, 2018
Web services and APIs
Location: 210 C/G
Peggy Rayzis (Meteor Development Group)
Average rating: ***..
(3.22, 9 ratings)
GraphQL is a new API technology that has exploded in popularity over the past year. But what's all the hype about? Peggy Rayzis details what GraphQL is and explains how integrating it into your application can solve many of the pain points frontend developers face when working with remote data. Read more.
9:50am–10:30am Wednesday, June 13, 2018
Browsers and Frontend Tools
Location: 210 D/H
Burke Holland (Microsoft)
Average rating: ****.
(4.50, 4 ratings)
Visual Studio Code is catching fire with JavaScript developers because it can do a lot, from productivity tips to debugging Docker containers on the fly to hacking the editor itself. Join Burke Holland to explore the best features and extensions for VS Code that nobody ever bothered to tell you about. Read more.
9:50am–10:30am Wednesday, June 13, 2018
Architecture and microservices
Location: 212 A/B
Thomas Bouldin (Google), Sarah Allen (Google)
Average rating: ****.
(4.00, 5 ratings)
Modern backend architectures increasingly stitch together loosely coupled services through event-driven pipelines. Thomas Bouldin and Sarah Allen explain how “stackless” programming can free you to build applications faster that scale more smoothly. Read more.
9:50am–10:30am Wednesday, June 13, 2018
Alexis Menard (Intel)
Alexis Menard offers an overview of the WebXR Device API (formerly known as WebVR 2.0) and explains how to build a VR experience on the web from scratch. You'll get familiar with VR concepts, learn how to use them with the WebXR Device API, and discover how to port your existing WebVR 1.1 experience if you already have one. Read more.
11:00am–11:40am Wednesday, June 13, 2018
Performance and UX
Location: 210 A/E
Max Firtman (ITMaster Professional Training)
Average rating: ****.
(4.71, 7 ratings)
After you understand how important web performance is and have applied basic techniques, what's next? Max Firtman covers extreme web performance techniques that will blow your mind, from new compression algorithms and new image formats to client hints and HTTP/2 push. Join in to learn how to hack web performance. Read more.
11:00am–11:40am Wednesday, June 13, 2018
Mobile and Desktop
Location: 210 B/F
Houssein Djirdeh (Rangle.io)
Average rating: ****.
(4.20, 5 ratings)
We’ve become accustomed to developing complex applications with powerful desktop and laptop machines. Unfortunately, this emphasizes how slow the mobile web is. Houssein Djirdeh offers an overview of the PRPL pattern, explaining what it is and how you can use it to build fast and reliable progressive single-page applications for users on any device. Read more.
11:00am–11:40am Wednesday, June 13, 2018
Web services and APIs
Location: 210 D/H
Gergely Németh (GoDaddy)
Average rating: ***..
(3.00, 2 ratings)
Gergely Németh outlines the evolution of a Node.js application from a proof-of-concept implementation to a mature, prospering product that earns revenue and scales to millions of customers Read more.
11:00am–11:40am Wednesday, June 13, 2018
Martine Dowden (Andromeda)
Average rating: ***..
(3.33, 3 ratings)
With over 40 possible values for the display property, it's no wonder that CSS can be tricky, especially for layouts. Martine Dowden offers an overview of the display property and demonstrates how to use it to lay out content. Read more.
3:35pm–4:15pm Wednesday, June 13, 2018
Performance and UX
Location: 210 A/E
Paul Calvano (Akamai Technologies)
Average rating: ****.
(4.50, 4 ratings)
Have you ever thought about how your site’s performance compares to the web as a whole? Paul Calvano explores how the HTTP Archive works, how people are using this dataset, and some ways that Akamai has leveraged data within the HTTP Archive to help its customers. Read more.
3:35pm–4:15pm Wednesday, June 13, 2018
Author, Frameworks and Libraries
Location: 210 B/F
Bradley Holt (IBM)
Average rating: ****.
(4.20, 5 ratings)
Bradley Holt demonstrates how service workers, Apache CouchDB (an open source document database), Hoodie (an open source Node.js backend for offline first apps), and PouchDB (an open source JavaScript database that syncs) can be used to build progressive web apps using an offline-first approach in order to provide fast, zero-latency access to content and data stored directly on the device. Read more.
3:35pm–4:15pm Wednesday, June 13, 2018
Matthew Larson (FamilySearch), Ian James (FamilySearch)
Average rating: ***..
(3.50, 4 ratings)
Many popular services employ real-time data to engage users, but traditional web technologies like REST and Ajax were not designed for the real-time web. Matthew Larson and Ian James share an alternative approach to real-time data that is easier to understand and scales well using Redux and WebSockets and demonstrate these principles in action with a real-time multiplayer game. Read more.
4:25pm–5:05pm Wednesday, June 13, 2018
Browsers and Frontend Tools
Location: 210 D/H
Brian Holt (Microsoft)
Average rating: ****.
(4.60, 10 ratings)
Your app is bigger and slower than it needs to be. Brian Holt demonstrates how to squeeze more performance out of your code without rewriting it by tweaking webpack and Babel. These tools are immensely powerful, but it’s a delicate dance to get them to play nice. Join in to learn the tips and tricks you need to get there. Read more.
4:25pm–5:05pm Wednesday, June 13, 2018
Future JS and Functional
Location: 212 A/B
Natalie Qabazard (Trulia)
Average rating: *****
(5.00, 5 ratings)
For years, developers have relied on browsers to render web pages client side, which often leaves users patiently waiting for web pages to load. This less-than-favorable experience can be changed by writing user interface components in React. Join Natalie Qabazard to explore the pros and cons of rendering a web page server side using React and a serverless resource. Read more.
9:00am–9:40am Thursday, June 14, 2018
Aimee Knight (Built Technologies)
Average rating: ****.
(4.25, 4 ratings)
All too often developers are left completely puzzled when the browser renders CSS in ways they didn’t expect. But it’s not dark magic; we know that computers are just parsing our instructions. While many talks discuss how to fix common bugs, Aimee Knight focuses on the reasons behind them, leading a deep dive into browser internals to see how our styles are parsed and rendered. Read more.
9:00am–9:40am Thursday, June 14, 2018
Future JS and Functional
Location: 210 B/F
C J Silverio (npm)
Average rating: ****.
(4.44, 9 ratings)
Until now, JavaScript has not had an official module system defined as part of the language, although it has had several unofficial ones, including Node.js’s CommonJS module system. Join CJ Silverio to explore JavaScript's new module system, ES modules, and learn how your tooling and workflows will need to change in response. Read more.
9:00am–9:40am Thursday, June 14, 2018
Frameworks and Libraries
Location: 210 D/H
Hassan Djirdeh (Shopify)
Average rating: ****.
(4.43, 7 ratings)
The ability to create Vue.js components as small decoupled units of functionality is necessary for the organization of Vue.js applications, and parent-child and sibling-sibling components must be able to interact and manage information. Hassan Djirdeh explains why it's important to have appropriate state management for the predictability and maintainability of an entire Vue.js application. Read more.
9:00am–9:40am Thursday, June 14, 2018
Security
Location: 212 A/B
Princiya Sequeira (Zalando)
Average rating: **...
(2.50, 2 ratings)
Browser extensions built with the WebExtensions APIs are compatible with all modern browsers. Princiya Sequeira shares lessons learned migrating a legacy privacy add-on to a web extension, with performance being the key factor. Along the way, you'll explore all things web tracking. Read more.
9:50am–10:30am Thursday, June 14, 2018
Accessibility
Location: 210 A/E
Juliana Gomez (Huge)
Average rating: ***..
(3.33, 3 ratings)
The dev community is increasingly interested in accessibility (A11y), but now we need the knowledge and tools to actually do it. Juliana Gomez demystifies the trickiest WCAG standards, shares demos of common accessibility nightmares, and explains how to make them accessible in the simplest ways possible using HTML, CSS, and plain JavaScript. Read more.
9:50am–10:30am Thursday, June 14, 2018
Mobile and Desktop
Location: 210 D/H
David Neal (ReverentGeek)
Average rating: *****
(5.00, 4 ratings)
Want to leverage your web skills to build cross-platform desktop applications? David Neal offers an overview of Electron, an open source solution designed to make building great desktop applications easy. Join in to explore Electron's features and learn how to quickly get started. Read more.
11:00am–11:40am Thursday, June 14, 2018
Future JS and Functional
Location: 210 B/F
Bryan Hughes (Microsoft)
Average rating: ****.
(4.00, 9 ratings)
Interested in TypeScript but aren't sure where to start? Like most modern web development, it can feel like there are too many options and no obvious answers. Join Bryan Hughes to learn best practices for integrating TypeScript into both Node.js and webpack + React/JSX workflows, discover how you can benefit from the features TypeScript offers, and find answers to your TypeScript questions. Read more.
11:00am–11:40am Thursday, June 14, 2018
Security
Location: 212 A/B
Michael Swieton (Atomic Object)
Average rating: ****.
(4.00, 2 ratings)
Michael Swieton explores how the cryptographic ecosystem—which includes tools such as public key cryptography, signatures, password hashes, key exchange, and stream ciphers—provides security for our applications and explains how these tools come together to enable user-visible functionality like secure sessions, user authentication, and single sign-ons. Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Performance and UX
Location: 210 A/E
Patrick Hamann (Fastly)
Average rating: ****.
(4.40, 5 ratings)
HTTP/2 server push gives us the ability to proactively send assets to a browser without waiting for them to be requested. Sounds great, but is this new mechanism really a silver bullet? Using new research and real-world examples, Patrick Hamann leads a deep dive into server push and attempts to answer the question we're all asking: Is it ready for production? Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Web services and APIs
Location: 210 B/F
Alex Banks (Moon Highway)
Average rating: ****.
(4.33, 3 ratings)
Instead of allowing our phones to make us oblivious to the world around us, what if we were able to use them to facilitate interactivity in the real world? Alex Banks details (and invites you to participate in) interactive challenges that use the power of GraphQL to create graphable relationships, covering the code that produces each activity and the data produced by the activity itself. Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Security
Location: 210 C/G
Average rating: **...
(2.00, 1 rating)
Chetan Karande shares the findings from an analysis of over a thousand publicly known Node.js vulnerabilities. With intuitive data visualizations and statistics, Chetan details trends over last five years, explores common security mistakes made by Node.js package authors, and explains how you can prevent these issues in your own code. Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Architecture and microservices
Location: 212 A/B
Ivan Jovanovic (NearForm)
Average rating: ****.
(4.50, 2 ratings)
Nowadays, applications have become incredibly big and complex, and most of the app lives on the client side. It’s becoming very hard to maintain those apps, and we often create more bugs than we fix. Ivan Jovanovic explains why the micro-frontend (a microservice-oriented architecture on the frontend) might just be the solution you need. Read more.
4:25pm–5:05pm Thursday, June 14, 2018
Mobile and Desktop
Location: 210 B/F
luis Vieira (Farfetch.com)
Average rating: *****
(5.00, 1 rating)
Luis Vieira offers an overview of the current progressive web app (PWA) landscape and explains how to leverage new APIs such as client hints, service workers, and network information to create PWAs that are highly adaptive to users' devices and contexts and that can offer a tailored and optimized experience that accounts for each device's unique characteristics. Read more.
4:25pm–5:05pm Thursday, June 14, 2018
Frameworks and Libraries
Location: 210 D/H
Stephen Fluin (Google)
Average rating: *****
(5.00, 1 rating)
The Angular platform has come a long way since its first major release in September 2016. Stephen Fluin shares what the Angular team is doing to make the platform smaller, faster, and easier to use and outlines new efforts from the team to help developers take advantage of the modern web, including Angular Elements, server-side rendering with Universal, and more. Read more.
4:25pm–5:05pm Thursday, June 14, 2018
Web services and APIs
Location: 212 A/B
Bobby Johnson (Auth0)
Average rating: *....
(1.00, 1 rating)
Alexa, Amazon's voice-controlled assistant, is incredibly easy to build for. Bobby Johnson walks you through building Alexa skills for the sole purpose of having fun with your kids. Read more.