Building a Better Web
June 19–20, 2017: Training
June 20–22, 2017: Tutorials & Conference
San Jose, CA

Sessions

Wednesday, June 21

9:00am–9:40am Wednesday, June 21, 2017
Location: 210 AE
Secondary topics:  Browser tools, Performance culture, Progressive web apps
Addy Osmani (Google)
Average rating: ****.
(4.81, 27 ratings)
Venture deep into the belly of the browser to uncover the secret to instantly loading anything—backed by data. Addy Osmani explains how to use preload, prefetch, preconnect, HTTP/2 server push, service workers, and more and how to ship JavaScript bundles on mobile that don't break the bank as he shares data-driven techniques and performance patterns for efficiently loading content instantly. Read more.
9:00am–9:40am Wednesday, June 21, 2017
Location: 210 BF
Secondary topics:  Privacy, Progressive web apps, Security
Mike North (LinkedIn)
Average rating: ****.
(4.20, 10 ratings)
Your users are almost certainly vulnerable in one way or another. Mike North explores a series of common web app security pitfalls, first demonstrating how to exploit the vulnerability and then recommending a pragmatic and effective defense against the attack. Buckle up, because Mike's about to take some things you love and depend on and smash them to bits. Read more.
9:00am–9:40am Wednesday, June 21, 2017
Location: 210 CG
Secondary topics:  Designing for performance, Mobile, UX optimization
David Fox (LookZook)
Average rating: ****.
(4.67, 6 ratings)
Despite spending countless hours optimizing our own sites, many of us still look at sites like Amazon's or the Guardian's in awe, wondering how they are still so much more performant. What are they doing differently? David Fox reverse engineers these sites, shedding light on the various tricks and optimizations they have and we don't. Read more.
9:00am–9:40am Wednesday, June 21, 2017
Location: 210 DH
Secondary topics:  CSS3, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), JavaScript/ES6
Max Stoiber (Spectrum.chat)
Average rating: ****.
(4.38, 8 ratings)
Building user interfaces on the web is hard, because the web—and thus CSS—was inherently made for documents. Because UIs fundamentally are not documents, we've seen a mindset shift toward building component-based systems. Drawing on his work with Glen Maddern, Max Stoiber offers an overview of styled-components, a new way to style React apps that takes the best of CSS. Read more.
9:00am–9:40am Wednesday, June 21, 2017
Location: 212 A/B
Secondary topics:  Building great teams, Engineering culture
K Vignos (Twitter)
Average rating: ****.
(4.75, 4 ratings)
Constant change—caused by high attrition, frequent reorganization, shifting priorities, and management turnover, among other reasons—is the new normal. It takes months to onboard a new team member and get them adding value. Kathleen Vignos offers tips, shortcuts, and stories for stabilizing a team and finding a path to productivity amid the chaos. Read more.
9:50am–10:30am Wednesday, June 21, 2017
Location: 210 AE
Secondary topics:  Tools
Average rating: ****.
(4.50, 10 ratings)
If you've used Git for any amount of time, you've probably gotten yourself into some confusing, frustrating, or downright terrifying situations. You are not alone. Katie Sylor-Miller explains how to avoid getting into Git messes in the first place and how to leverage Git's powerful features to save yourself when everything seems to go wrong. Read more.
9:50am–10:30am Wednesday, June 21, 2017
Location: 210 BF
Secondary topics:  Functional Programming (Elm, ClojureScript, Erlang), Future of JavaScript (ES7, ES8, WebAssembly, etc.), JavaScript/ES6
Nicole Chung (TWG)
Average rating: ***..
(3.90, 10 ratings)
From callbacks to promises to generators to async/await, JavaScript has a myriad of ways to handle out-of-order events and processes—some of which are more readable than others and some of which are more testable than others. Nicole Chung explores the readability and testability of each approach in detail. Read more.
9:50am–10:30am Wednesday, June 21, 2017
Location: 210 CG
Secondary topics:  Designing for performance, Progressive web apps
Islam Sharabash (Superhuman)
Average rating: ****.
(4.14, 14 ratings)
Offline web applications with native performance are no longer a myth. Islam Sharabash explains how to architect an application that loads offline, persists data to disk, and even resolves conflicts in data and shares the challenges he encountered, including managing optimistic updates, syncing, and performance on a single thread, and the solutions that worked best. Read more.
9:50am–10:30am Wednesday, June 21, 2017
Location: 210 DH
Secondary topics:  Browser tools, Mobile, UX optimization
Henri-R Brisard (Freelance)
Average rating: ***..
(3.67, 6 ratings)
Ten years into the smartphone era, our media consumption is growing at an alarming rate, increasing page weights along the way. Henri-R Brisard discusses image formats, their impact on browsing from a rendering to a UX perspective, the tools and processes in place to address their mismanagement, and the reasons developers must exercise vigilance in a growing and worldly audience of users. Read more.
9:50am–10:30am Wednesday, June 21, 2017
Location: 212 A/B
Secondary topics:  Security
Ilya Nesterov (Shape Security)
Average rating: **...
(2.75, 4 ratings)
Content Security Policy (CSP) is a powerful and complex standard that allows you to bring an additional level of security to your web applications. Ilya Nesterov outlines the not-so-obvious things that lead to weak CSP, illustrates typical mistakes in CSP, based on the Alexa top 1 million sites, and explains how you can build strict CSP in your own projects. Read more.
9:50am–10:30am Wednesday, June 21, 2017
Location: 212 CD (Sponsored)
Paco Nathan (derwen.ai)
Average rating: ***..
(3.00, 1 rating)
O'Reilly recently launched Oriole, a new learning medium for online tutorials that combines Jupyter notebooks, video timelines, and Docker containers run on a Mesos cluster, based the pedagogical theory of computable content. Paco Nathan explores the system architecture, shares project experiences, and considers the impact of notebooks for sharing and learning across a data-centric organization. Read more.
11:00am–11:40am Wednesday, June 21, 2017
Location: 210 AE
Secondary topics:  HTTP/2, Performance culture, Progressive web apps
Dean Hume (Settled)
Average rating: ****.
(4.40, 15 ratings)
Imagine a world where you can access content on the web regardless of network connection in the blink of an eye. Progressive web apps are a total game changer for the web, enabling developers to build lightning-fast, engaging experiences. Drawing on firsthand experience, Dean Hume shares a step-by-step guide to implementing this technology in your own projects. Read more.
11:00am–11:40am Wednesday, June 21, 2017
Location: 210 BF
Secondary topics:  Functional Programming (Elm, ClojureScript, Erlang)
Jeremy Fairbank (Test Double)
Average rating: ***..
(3.67, 6 ratings)
Elm is a functional programming language that compiles to JavaScript and allows building robust and safe web apps. Jeremy Fairbank dives into Elm's syntax and its Model-View-Update architecture, explaining the advantages Elm offers for developing frontend apps and how to structure a simple app with pure functions, and shares steps to getting started with Elm. Read more.
11:00am–11:40am Wednesday, June 21, 2017
Location: 210 CG
Secondary topics:  CSS3, Responsive web design
Rachel Andrew (Edgeofmyseat.com)
Average rating: ****.
(4.14, 7 ratings)
Rachel Andrew shares a modern roadmap for browser support that enables you to create sites that can enhance themselves as the platform improves—without leaving people stuck on older browsers in the cold. Read more.
11:00am–11:40am Wednesday, June 21, 2017
Location: 210 DH
Secondary topics:  Mobile, Native and hybrid mobile apps
TJ VanToll (Progress)
Average rating: *****
(5.00, 2 ratings)
The web is cool, but sometimes you need to push the boundaries of what you can do on a mobile device. NativeScript and Angular let you build the highly performant native apps you want—with the web technologies you already know and love. TJ VanToll explores what NativeScript makes possible. Read more.
11:00am–11:40am Wednesday, June 21, 2017
Location: 212 A/B
Secondary topics:  Case studies and comparisons, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.)
Erin McKean (Google | Wordnik)
Average rating: ****.
(4.67, 3 ratings)
There is more data available today than ever before, but available datasets are not necessarily accessible datasets. Datasets often languish because they lack easily accessible APIs, or worse, precious research time is spent recreating tools needed to work with data. Erin McKean explains how to build and deploy a useful API for a legacy dataset with LoopBack, an open source Node API framework. Read more.
11:00am–11:40am Wednesday, June 21, 2017
Location: 212 CD (Sponsored)
manish anand (Salesforce)
Manish Anand illustrates various techniques to effectively monitor the current health of a customer production and offers an overview of how to build effective production monitoring dashboards to track the relevant metrics at a glance. Read more.
3:35pm–4:15pm Wednesday, June 21, 2017
Location: 210 AE
Secondary topics:  Build and automation, Case studies and comparisons, Microservices
Shane Russell (United States Digital Service)
Average rating: ***..
(3.62, 8 ratings)
The US Digital Service is building a suite of tools to replace a large legacy application at the Department of Veteran Affairs. Knowing the complexity of the end state and enamored with microservices, the team was much too aggressive in breaking up the product. Shane Russell reflects on this experience, sharing advice and lessons learned on how and when to break up your web app. Read more.
3:35pm–4:15pm Wednesday, June 21, 2017
Location: 210 BF
Secondary topics:  Functional Programming (Elm, ClojureScript, Erlang), JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), JavaScript/ES6
Anjana Vakil (Mapbox)
Average rating: ****.
(4.82, 11 ratings)
Functional programming—programming without side effects or mutability—has great advantages, especially for JavaScript developers, but never mutating data can lead to efficiency problems. Anjana Vakil explains how immutable data structures provide an elegant solution and explores two libraries that make it easy to use these remarkable data structures in your own JavaScript projects. Read more.
3:35pm–4:15pm Wednesday, June 21, 2017
Location: 210 CG
Secondary topics:  Automation, Build and automation, Tools
Elijah Manor (LeanKit)
Average rating: ****.
(4.44, 9 ratings)
Elijah Manor explains how to use npm scripts to handle your various build needs, covering running scripts in series or parallel, using lifecycle hooks, passing arguments, piping data, using environment variables, running scripts on file change or when Git hooks are triggered, and organizing our scripts in external files—as well as how to modify your scripts to run across Mac, Linux, and Windows. Read more.
3:35pm–4:15pm Wednesday, June 21, 2017
Location: 210 DH
Secondary topics:  JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), Maintaining sites and applications, UI frameworks and libraries
Average rating: ***..
(3.50, 2 ratings)
Atomic design is well suited for migrating web applications. Because you build complexity out of simple components, you can start small and slowly carve out your application. Harrison Harnisch shares how Buffer is migrating six years of development with atomic design. Read more.
3:35pm–4:15pm Wednesday, June 21, 2017
Location: 212 A/B
Secondary topics:  Dependency management, UI frameworks and libraries
Average rating: ****.
(4.12, 8 ratings)
Connie Chang and Michael Rawlings offer an overview of eBay's innovative approach to adaptively rendering and delivering UI components, based on an intuitive file naming convention, for an optimal experience on all devices from a single codebase. This simple-to-use approach has been employed by many teams, is open source, and works with a variety of UI libraries and module bundlers. Read more.
3:35pm–4:15pm Wednesday, June 21, 2017
Location: 212 CD (Sponsored)
Neil Manvar (Sauce Labs)
Average rating: **...
(2.00, 1 rating)
Neil Manvar shares best practices for leveraging modern technologies to develop and test maintainable, quality code within CI/CD workflows. Read more.
4:25pm–5:05pm Wednesday, June 21, 2017
Location: 210 AE
Secondary topics:  CSS3, Performance culture, UX optimization
Eli Fitch (Social Tables)
Average rating: ****.
(4.94, 16 ratings)
Perceived performance, in the end, is the only performance that truly matters. If what we make doesn't feel fast, then no amount of optimization counts. Eli Fitch breaks down the psychology of how users perceive time and how we can combine that knowledge with clever use of animation, unconventional event listeners, and predictive design to make our experiences seem faster than they actually are. Read more.
4:25pm–5:05pm Wednesday, June 21, 2017
Location: 210 BF
Secondary topics:  Microservices, RESTful web, Security
Average rating: ****.
(4.00, 6 ratings)
In the new world of JavaScript UIs, REST APIs, and microservices, applications that run in the highly insecure browser environment must handle tokens and other secrets to have access to backend services. Drawing on his experience at Rackspace, Miguel Grinberg discusses the risks and shares best practices to avoid them. Read more.
4:25pm–5:05pm Wednesday, June 21, 2017
Location: 210 CG
Secondary topics:  CSS3, HTML5, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.)
Bryan Braun (Sparkbox)
Average rating: ****.
(4.20, 5 ratings)
There are more options than ever for animating things on the web. Bryan Braun leads a tour of the web animations ecosystem, comparing animation approaches in detail and exploring the principles that transcend them all. To do this, Bryan uses lessons learned from building and maintaining Bouncy Ball, a project that compares web animation approaches (think, a TodoMVC for web animation). Read more.
4:25pm–5:05pm Wednesday, June 21, 2017
Location: 210 DH
Yoav Weiss (Akamai)
Average rating: ****.
(4.14, 7 ratings)
Caching ensures content gets to users as fast as possible and provides a great experience to repeat visitors. But getting network and browser caching right can be difficult, which explains why most web content today is not properly cached. Yoav Weiss explores HTTP cache semantics, strategies, browser internal caches, and service workers and explains how to serve your content fast and fresh. Read more.
4:25pm–5:05pm Wednesday, June 21, 2017
Location: 212 A/B
Secondary topics:  Progressive web apps, Responsive web design, Smarter web (AI, Bots, Virtual Reality, Gaming)
Ben Foxall (Independent)
Average rating: ****.
(4.50, 2 ratings)
With ever-more-accessible hardware and native support in web platforms, virtual reality is set to become part of our daily lives, both as consumers and developers. Ben Foxall explores the features and capabilities of WebVR, showing how it can be used to create meaningful (and useful) applications, and explains how uniquely complementary this is to the rest of our web platform. Read more.
4:25pm–5:05pm Wednesday, June 21, 2017
Location: 212 CD (Sponsored)
Leo Vasiliou (Catchpoint Systems), Dawn Parzych (Catchpoint)
Average rating: *****
(5.00, 1 rating)
Increasing the observability attribute of complex systems can be difficult. Leo Vasiliou and Dawn Parzych explore critical components, such as the changing nature of data, Simpson’s paradoxical nature of analysis, and the fail-forward mindset as they relate to a larger monitoring strategy. Read more.

Thursday, June 22

9:00am–9:40am Thursday, June 22, 2017
Location: 210 AE
Secondary topics:  Designing for performance, Security, Tools
Tim Kadlec (Independent)
Average rating: ****.
(4.38, 8 ratings)
One of the wonderful things about building for the web is the ability to stand on the shoulders of our fellow developers, who release new frameworks and libraries to make our job easier. But nothing is free. We constantly make trade-offs, whether we know it or not. Tim Kadlec explains how to evaluate third-party tools to identify these trade-offs—a requirement for the health of your site. Read more.
9:00am–9:40am Thursday, June 22, 2017
Location: 210 BF
Secondary topics:  Future of JavaScript (ES7, ES8, WebAssembly, etc.), UI frameworks and libraries
Ben Lesh (Netflix)
Average rating: ****.
(4.78, 9 ratings)
Find yourself lost trying to choose the right operator to compose your observables? Struggle with how to structure your observable chains? Feel like you're almost there, but you're just missing something? Don't worry, we've all been there, even the "experts." Ben Lesh gets you started down the path to being an Rx expert, sharing common patterns you can use in RxJS with Angular 2 or any framework. Read more.
9:00am–9:40am Thursday, June 22, 2017
Location: 210 CG
Secondary topics:  Accessibility, CSS3, HTML5
Estelle Weyl (Instart Logic)
Average rating: ****.
(4.67, 6 ratings)
If you think outside the box, you can solve almost anything with CSS. Join Estelle Weyl to learn the power of CSS, as she covers several CSS WTFs. Depending on your perspective, that can mean "wonderfully terrific feature" or, very often, "what the @#$%!." Read more.
9:00am–9:40am Thursday, June 22, 2017
Location: 210 DH
Secondary topics:  JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), JavaScript/ES6
Jonathan Creamer (Lonely Planet)
Average rating: ****.
(4.29, 7 ratings)
As a beginner, heck even as a veteran, trying to understand all of the different lifecycle events in a React component can be a bit daunting. You'll often find yourself googling which one to use even after spending months working with React because each method has different uses. Jonathan Creamer goes through each lifecycle method, giving some examples of how and when to use them. Read more.
9:00am–9:40am Thursday, June 22, 2017
Location: 212 CD (Sponsored)
Secondary topics:  Browser tools
Addy Osmani (Google)
Average rating: *****
(5.00, 3 ratings)
Venture deep into the belly of the browser to uncover the secret to instantly loading anything—backed by data. Addy Osmani explains how to use preload, prefetch, preconnect, HTTP/2 server push, service workers, and more and how to ship JavaScript bundles on mobile that don't break the bank as he shares data-driven techniques and performance patterns for efficiently loading content instantly. Read more.
9:50am–10:30am Thursday, June 22, 2017
Location: 210 AE
Secondary topics:  Data science and analytics, Monitoring, measurement, and metrics, Performance culture
Shubhie Panicker (Google), Nic Jansma (Akamai)
Average rating: ****.
(4.00, 10 ratings)
Responsiveness to user interaction is crucial for users of web apps, but bad user experiences abound. Shubhie Panicker and Nic Jansma share new web performance APIs that enable developers to reliably measure responsiveness and correctly identify first- and third-party culprits for bad experiences. They then compare these measurements to business metrics using real-world data. Read more.
9:50am–10:30am Thursday, June 22, 2017
Location: 210 BF
Secondary topics:  Engineering culture, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), Node.js
Danielle Man (Meteor Development Group)
Average rating: ****.
(4.41, 17 ratings)
GraphQL improves both your API's performance and the performance of your team in general. Schema-first GraphQL development forces front- and backend teams to agree on a strict contract up front, enabling them to work quickly and efficiently while staying on spec. Danielle Man discusses the benefits of schema-driven development and shares lessons learned using GraphQL in production. Read more.
9:50am–10:30am Thursday, June 22, 2017
Location: 210 CG
Secondary topics:  Accessibility
laura carvajal (The Financial Times)
Average rating: ****.
(4.75, 4 ratings)
Laura Carvajal explains how her team introduced accessibility to the Financial Times website, FT.com, and shares lessons learned along the way as well as practical solutions you can implement in your project today, regardless of available time, resources, or support. Read more.
9:50am–10:30am Thursday, June 22, 2017
Location: 210 DH
Secondary topics:  HTML5, Mobile, Progressive web apps
Olga Petrova (Sencha)
Average rating: ****.
(4.80, 5 ratings)
Web Push allows real-time notifications to be delivered to an app even if the app is not currently in the foreground. Web apps that use Web Push have higher user engagement, which can impact sales. Olga Petrova explains how to implement Web Push in your existing application and shares best practices. Read more.
9:50am–10:30am Thursday, June 22, 2017
Location: 212 A/B
Secondary topics:  Monetization of the web, Privacy, Third parties
Peter Blum (Instart Logic)
Average rating: *****
(5.00, 1 rating)
Publishers that monetize via advertising are faced with a crisis: the rapid adoption of ad blocking is impacting earnings. Peter Blum explains where advertisers went wrong, how users responded (with ad blockers), the impact of ad blockers on publishers, and publisher responses—including subscriptions, soft and hard messaging, and even unblocking ads—with case studies for each approach. Read more.
9:50am–10:30am Thursday, June 22, 2017
Location: 212 CD (Sponsored)
Mike Tria (Atlassian), Julian Dunn (Chef Software Inc.), Brandon Cipes (cPrime), Tommer Wizansky (AutoGrid Systems)
Average rating: ****.
(4.00, 1 rating)
Mike Tria asks experienced DevOps practitioners Rajeev Singh, Julian Dunn, and Brandon Cipes what they think about some of the most popular yet most contentious DevOps questions: Are roles with DevOps in the title real? How do I convince my lead or CTO that there are quantifiable benefits of doing DevOps? Who is winning the battle of DevOps automation versus culture? Read more.
11:00am–11:40am Thursday, June 22, 2017
Location: 210 AE
Secondary topics:  Browser tools
Average rating: ****.
(4.88, 8 ratings)
Creating a lasting style guide that the product team will actually use and adopt is challenging. Archana Sankaranarayanan demonstrates how to build a style guide instantly with an Atomic CSS-based starter that ensures accessibility, performance, and engineering and design efficiency and shares some PostCSS tools to help grow the style guide, maintain it, and ease its adoption. Read more.
11:00am–11:40am Thursday, June 22, 2017
Location: 210 BF
Secondary topics:  JavaScript/ES6, Node.js
Lucas Fernandes (Shaw and Partners)
Average rating: ***..
(3.80, 10 ratings)
Infinite sequences, lazy properties, and changing your program’s structure in runtime. Yes, JavaScript is that powerful. Lucas Fernandes demonstrates how to solve problems in a smarter way and with better performance and readability by redefining how the language’s features work behind the scenes. Read more.
11:00am–11:40am Thursday, June 22, 2017
Location: 210 CG
Secondary topics:  CSS3, Responsive web design
Ben Ilegbodu (Eventbrite)
Average rating: ****.
(4.00, 3 ratings)
Building linear layouts in CSS has been hard. Tables are bad, inline-block has quirks, and floats are insufficient. Thankfully CSS Flexbox enables us to elegantly solve our layout problems. Ben Ilegbodu dives into Flexbox, covering what it is, why you should use it, how it’s configured, and where it’s most useful. Read more.
11:00am–11:40am Thursday, June 22, 2017
Location: 210 DH
Secondary topics:  Designing for performance, Progressive web apps, UX optimization
David Wells (Serverless)
Average rating: ****.
(4.00, 3 ratings)
David Wells explores how to use React, markdown, service workers, CDNs, and serverless computing to build cost-effective, infinitely scalable, secure offline-first sites, blogs, docs, and SaaS products using the same code base. Join in to find out why “static” websites aren’t so static anymore and how they can deliver a state-of-the-art user experience using progressive web app techniques. Read more.
11:00am–11:40am Thursday, June 22, 2017
Location: 212 A/B
Secondary topics:  Data science and analytics, Monitoring, measurement, and metrics, Third parties
3596b02f b4b12d54 (MeasureWorks)
Average rating: ****.
(4.50, 6 ratings)
Third parties offer many benefits, but they also break sites, open security holes, and are often bad for performance. Kristian Skoeld shares proven methods and techniques on how to manage third parties and break through IT and business silos. You'll leave with a list of tools, checklists, and approaches to help you end emotionally loaded discussions and make data-driven decisions. Read more.
11:00am–11:40am Thursday, June 22, 2017
Location: 212 CD (Sponsored)
Lisa Klein (SAP)
Average rating: **...
(2.33, 3 ratings)
Are you curious how to code web apps for a typical user journey across multiple devices and how to design the touch points between them? Lisa Klein shows you how to realize seamless cross-device scenarios with responsive web apps by analyzing a typical product conversion scenario and illustrating how to enrich the user experience on each device to create a delightful user journey. Read more.
3:35pm–4:15pm Thursday, June 22, 2017
Location: 210 AE
Secondary topics:  Accessibility, Automation, JavaScript/ES6
Marcy Sutton (Deque Systems)
Average rating: ****.
(4.43, 7 ratings)
Marcy Sutton discusses open source web development tools and testing practices that can help your team develop a pragmatic and sustainable approach to accessible software, benefiting many people with disabilities. Read more.
3:35pm–4:15pm Thursday, June 22, 2017
Location: 210 BF
Secondary topics:  Building great teams, Case studies and comparisons, Maintaining sites and applications
Joao Fernandes (Docker)
Average rating: ***..
(3.75, 4 ratings)
Getting early adopters is hard, but bringing your product to the rest of the world is harder. Known as crossing the chasm, this is a make-or-break moment. Joao Fernandes explains how good docs can help you cross the chasm and ensure you won't need to spend your days holding users' hands and shares the processes and tools Docker uses to deliver docs in a continuous way. Read more.
3:35pm–4:15pm Thursday, June 22, 2017
Location: 210 CG
Secondary topics:  JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), Security
lewis ardern (Synopsys)
Average rating: ****.
(4.00, 1 rating)
AngularJS is one of those wonderful frameworks that seems to hide so many of JavaScript’s warts. But while Angular adds much-needed features to the language, it also creates a handful of new security problems. Lewis Ardern walks you through an application that illustrates security issues discovered in real-world applications and explains the problem with usable solutions. Read more.
3:35pm–4:15pm Thursday, June 22, 2017
Location: 210 DH
Secondary topics:  Mobile, Native and hybrid mobile apps, Progressive web apps
Simon MacDonald (Adobe)
Average rating: ****.
(4.86, 7 ratings)
Progressive web apps (PWAs) are the new hotness, and Google is pressing hard to make them the de facto choice for building mobile applications. But what about iOS, where many of the key APIs are not supported? Cordova/PhoneGap offers a solution, polyfilling the missing functionality. Simon MacDonald demonstrates how to create a PWA that runs on the web, Android, and iOS from a single code base. Read more.
3:35pm–4:15pm Thursday, June 22, 2017
Location: 212 A/B
Secondary topics:  Browser tools, Hardware and the web
Jen Looper (Telerik)
Average rating: ****.
(4.25, 4 ratings)
Learn how to make your web pages react to the real world by leveraging web Bluetooth. Jen Looper explores using web Bluetooth in real-world scenarios, such as connecting to web beacons to enhance educational experiences. With web Bluetooth, the path to “walking up and using anything” promised by the physical web just got easier, more streamlined, and a lot more fun to use quickly. Read more.
3:35pm–4:15pm Thursday, June 22, 2017
Location: 212 CD (Sponsored)
Secondary topics:  Hardware and the web, Node.js, Progressive web apps
Alexis Menard (Intel)
Average rating: *****
(5.00, 1 rating)
Alexis Menard offers an overview of the new W3C Generic Sensor API, which enables you to use hardware sensors in your website or web app. Join in to learn how you can implement it today and catch a glimpse of future plans. Read more.
4:25pm–5:05pm Thursday, June 22, 2017
Location: 210 AE
Secondary topics:  Build and automation, Designing for performance, Tools
Billy Hoffman (Rigor)
Average rating: ****.
(4.00, 2 ratings)
The worst time to learn that a business-critical performance metric got worse is once a release is in production. The earlier you can detect a problem, the easier it is to resolve. Billy Hoffman explains how to integrate open source performance testing tools like Lighthouse, WebPagetest, and others into your build/CI systems, stopping performance regressions and providing transparency. Read more.
4:25pm–5:05pm Thursday, June 22, 2017
Location: 210 BF
Secondary topics:  Functional Programming (Elm, ClojureScript, Erlang)
David Eisenberg (Evergreen Valley College)
Average rating: *****
(5.00, 2 ratings)
J. David Eisenberg offers a whirlwind tour of ClojureScript, a functional language that compiles to JavaScript, covering everything from basic syntax, variables, and function definitions to lists, vectors, and the map and reduce functions. Read more.
4:25pm–5:05pm Thursday, June 22, 2017
Location: 210 CG
Secondary topics:  Build and automation, Node.js, Tools
Ben Vinegar (Sentry)
Average rating: ****.
(4.11, 9 ratings)
You're probably familiar with source maps. They let you debug your original, unminified, and untranspiled code in the browser. But have you ever wondered how they actually work? Ben Vinegar takes a deep dive into the source map format to see what's under the hood, exploring source map generation tools, parsers, and how to manipulate source maps directly for fun and profit. Read more.
4:25pm–5:05pm Thursday, June 22, 2017
Location: 210 DH
Secondary topics:  JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), Native and hybrid mobile apps, Progressive web apps
Tracy Lee (This Dot)
Average rating: ***..
(3.50, 4 ratings)
Native or hybrid? React Native apps are easier than you think. You can get started building apps in just a few minutes—even as a beginner. The React Native CLI makes the building experience as easy as typing a few commands. Tracy Lee explains how to get started and build an native app easily in less than 30 minutes. Read more.
4:25pm–5:05pm Thursday, June 22, 2017
Location: 212 A/B
Secondary topics:  Case studies and comparisons, Microservices, Third parties
Ruthie Nachmany (Warby Parker)
Average rating: ***..
(3.50, 2 ratings)
Warby Parker recently built an electronic health record system for its optometrists to use to conduct and store their eye exams. The company used this project as an opportunity to explore building a serverless web application on AWS. Ruthie Nachmany shares details of the system's implementation, challenges faced, and lessons learned along the way. Read more.