Building a Better Web
June 19–20, 2017: Training
June 20–22, 2017: Tutorials & Conference
San Jose, CA
 
210 AE
9:50am Getting out of your Git messes Katie Sylor-Miller (Etsy)
3:35pm Of monoliths and microservices: Adventures in structuring a web app Shane Russell (United States Digital Service)
210 BF
11:00am Tame the frontend with Elm Jeremy Fairbank (Test Double)
4:25pm Handling authentication secrets in the browser Miguel Grinberg (self)
210 CG
9:00am Reverse engineering Amazon and the Guardian David Fox (LookZook)
9:50am Architecting web apps to “just work” offline Islam Sharabash (Superhuman)
11:00am Evergreen websites for evergreen browsers Rachel Andrew (Edgeofmyseat.com)
3:35pm Using npm scripts as your build tool Elijah Manor (LeanKit)
210 DH
9:00am Styling React applications Max Stoiber (Spectrum.chat)
9:50am Optimize Prime: More pixels than meets the eye Henri-R Brisard (Freelance)
3:35pm Atomic design as a migration strategy Harrison Harnisch (Buffer)
4:25pm Caches all the way down Yoav Weiss (Akamai)
212 A/B
9:50am CSP: The good, the bad, and the ugly Ilya Nesterov (Shape Security)
3:35pm Adaptive web applications for all devices Connie C. Chang (eBay), Michael Rawlings (eBay)
4:25pm Keeping real with web Ben Foxall (Independent)
212 CD (Sponsored)
Grand Ballroom 220
1:00pm Wednesday keynote welcome Rachel Roumeliotis (O'Reilly), Allyson MacDonald (O'Reilly Media), Kyle Simpson (Getify), Tammy Everts (SpeedCurve)
1:40pm Letting everyone build a better web with Glitch Jenn Schiffer (Glitch.com at Fog Creek)
2:00pm Focusing on What Matters Tim Kadlec (Independent)
2:15pm The global stack Kelsey Hightower (Google)
2:30pm Innovating with accessibility in mind Marcy Sutton (Deque Systems)
8:00am Coffee break (8am - 9am) sponsored by SalesForce | Room: Grand Ballroom 220 Foyer
8:15am Wednesday Speed Networking | Room: Grand Ballroom 220 Foyer
10:30am Morning break sponsored by Oracle | Room: Exhibit Hall
11:40am Lunch sponsored by Linode Wednesday lunch and Birds of a Feather sessions | Room: Exhibit Hall
2:45pm Afternoon break sponsored by Microsoft | Room: Exhibit Hall
5:15pm Exhibit Hall Reception | Room: Exhibit Hall
6:30pm Event DevOps & Development After Dark | Room: San Pedro Square Market
9:00am-9:40am (40m) Performance Matters Browser tools, Performance culture, Progressive web apps
The browser hacker's guide to instantly loading everything
Addy Osmani (Google)
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.
9:50am-10:30am (40m) Frontend Tools Tools
Getting out of your Git messes
Katie Sylor-Miller (Etsy)
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.
11:00am-11:40am (40m) Performance Matters HTTP/2, Performance culture, Progressive web apps
Blink and you’ll miss it: Building a progressive web app with HTTP/2
Dean Hume (Settled)
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.
3:35pm-4:15pm (40m) Fullstack Development Build and automation, Case studies and comparisons, Microservices
Of monoliths and microservices: Adventures in structuring a web app
Shane Russell (United States Digital Service)
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.
4:25pm-5:05pm (40m) Performance Matters CSS3, Performance culture, UX optimization
Perceived performance: The only kind that really matters
Eli Fitch (Social Tables)
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.
9:00am-9:40am (40m) Modern Web Essentials Privacy, Progressive web apps, Security
Locking it down: A security primer for web developers
Mike North (LinkedIn)
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.
9:50am-10:30am (40m) Future JS & Functional Functional Programming (Elm, ClojureScript, Erlang), Future of JavaScript (ES7, ES8, WebAssembly, etc.), JavaScript/ES6
Async in JavaScript and readability in Redux
Nicole Chung (TWG)
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.
11:00am-11:40am (40m) Future JS & Functional Functional Programming (Elm, ClojureScript, Erlang)
Tame the frontend with Elm
Jeremy Fairbank (Test Double)
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.
3:35pm-4:15pm (40m) Future JS & Functional Functional Programming (Elm, ClojureScript, Erlang), JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), JavaScript/ES6
Immutable data structures for functional JavaScript
Anjana Vakil (Mapbox)
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.
4:25pm-5:05pm (40m) Web Services and APIs Microservices, RESTful web, Security
Handling authentication secrets in the browser
Miguel Grinberg (self)
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.
9:00am-9:40am (40m) Fullstack Development Designing for performance, Mobile, UX optimization
Reverse engineering Amazon and the Guardian
David Fox (LookZook)
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.
9:50am-10:30am (40m) Modern Web Essentials Designing for performance, Progressive web apps
Architecting web apps to “just work” offline
Islam Sharabash (Superhuman)
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.
11:00am-11:40am (40m) Modern Web Essentials CSS3, Responsive web design
Evergreen websites for evergreen browsers
Rachel Andrew (Edgeofmyseat.com)
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.
3:35pm-4:15pm (40m) Frontend Tools Automation, Build and automation, Tools
Using npm scripts as your build tool
Elijah Manor (LeanKit)
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.
4:25pm-5:05pm (40m) Modern Web Essentials CSS3, HTML5, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.)
14 ways to bounce a ball: A tour of the web animations ecosystem
Bryan Braun (Sparkbox)
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).
9:00am-9:40am (40m) Frontend Frameworks and Libraries CSS3, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), JavaScript/ES6
Styling React applications
Max Stoiber (Spectrum.chat)
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.
9:50am-10:30am (40m) Performance Matters Browser tools, Mobile, UX optimization
Optimize Prime: More pixels than meets the eye
Henri-R Brisard (Freelance)
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.
11:00am-11:40am (40m) Cross-Platform and Mobile Mobile, Native and hybrid mobile apps
Building performant native apps with Angular and NativeScript
TJ VanToll (Progress)
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.
3:35pm-4:15pm (40m) Frontend Frameworks and Libraries JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.), Maintaining sites and applications, UI frameworks and libraries
Atomic design as a migration strategy
Harrison Harnisch (Buffer)
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.
4:25pm-5:05pm (40m) Performance Matters
Caches all the way down
Yoav Weiss (Akamai)
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.
9:00am-9:40am (40m) People and teams Building great teams, Engineering culture
Managing engineering teams through constant change
K Vignos (Twitter)
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.
9:50am-10:30am (40m) Modern Web Essentials Security
CSP: The good, the bad, and the ugly
Ilya Nesterov (Shape Security)
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.
11:00am-11:40am (40m) Web Services and APIs Case studies and comparisons, JavaScript frameworks and libraries (Angular, React, Ember, Vue, etc.)
Your data deserves an API: Transforming and sharing humanities data with LoopBack
Erin McKean (Google | Wordnik)
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.
3:35pm-4:15pm (40m) Cross-Platform and Mobile Dependency management, UI frameworks and libraries
Adaptive web applications for all devices
Connie C. Chang (eBay), Michael Rawlings (eBay)
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.
4:25pm-5:05pm (40m) Future JS & Functional Progressive web apps, Responsive web design, Smarter web (AI, Bots, Virtual Reality, Gaming)
Keeping real with web
Ben Foxall (Independent)
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.
9:50am-10:30am (40m)
Computable content: Notebooks, containers, and data-centric organizational learning
Paco Nathan (derwen.ai)
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.
11:00am-11:40am (40m) Sponsored
Techniques to effectively monitor the performance of customers in the cloud (sponsored by Salesforce)
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.
3:35pm-4:15pm (40m) Sponsored
Delivering quality code frequently (sponsored by Sauce Labs)
Neil Manvar (Sauce Labs)
Neil Manvar shares best practices for leveraging modern technologies to develop and test maintainable, quality code within CI/CD workflows.
4:25pm-5:05pm (40m) Sponsored
Observability, monitoring, and the business: Strategy considerations to tie them together (sponsored by Catchpoint)
Leo Vasiliou (Catchpoint Systems), Dawn Parzych (Catchpoint)
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.
1:00pm-1:15pm (15m)
Wednesday keynote welcome
Rachel Roumeliotis (O'Reilly), Allyson MacDonald (O'Reilly Media), Kyle Simpson (Getify), Tammy Everts (SpeedCurve)
Program chairs Rachel Roumeliotis, Ally MacDonald, Kyle Simpson, and Tammy Everts welcome you to the first day of keynotes.
1:15pm-1:30pm (15m)
The end of "personal" computing (and the beginning of personal computing)
John Allsopp (Web Directions)
The era of so-called "personal" computing (as we've known it for 40 years) is coming to a close. John Allsopp explores the ways in which personal computing has become deeply impersonal and how the modern age of apps, screens, and devices that bring personal computing to us on the go is evolving and impacting human interaction.
1:30pm-1:40pm (10m) Sponsored keynote
Building the culture and collaboration layer for DevOps (sponsored by Atlassian)
Sean Regan (Atlassian)
While most conversations around DevOps revolve around tool X or tool Y or the automation of X and Y, the reality is that DevOps requires high-performing people and teams. Sean Regan runs a brief DevOps Health Monitor live on stage and shares the other 26 team playbooks that emerged from Atlassian's Agile, DevOps, and microservices journey.
1:40pm-1:55pm (15m)
Letting everyone build a better web with Glitch
Jenn Schiffer (Glitch.com at Fog Creek)
At a time when it's more critical than ever to support and nurture underrepresented coders and help current coders thrive, what does it look like to create a community where everyone can make the app of their dreams? Jenn Schiffer offers an overview of Glitch, a brand-new creative community that enables coders to collaborate in ways that past generations of programmers could only dream of.
1:55pm-2:00pm (5m) Sponsored keynote
Data’s journey to predictive analytics (sponsored by Catchpoint)
Leo Vasiliou (Catchpoint Systems)
Join Leo Vasiliou for a quick walk-through of the evolution of analytics, setting the stage for a deeper dive in a later sponsored session.
2:00pm-2:15pm (15m)
Focusing on What Matters
Tim Kadlec (Independent)
We work and live in a bubble. Our limited perspective of what it means to use technology influences the way we build, the tools we use, and the tasks we prioritize. In the process, we risk losing the most powerful thing about the internet: its ubiquity.
2:15pm-2:30pm (15m)
The global stack
Kelsey Hightower (Google)
Kelsey Hightower introduces the global stack and outlines the challenges facing full stack developers now that the target of their efforts must include computers that can go from 0 to 60 in under 3 seconds.
2:30pm-2:45pm (15m)
Innovating with accessibility in mind
Marcy Sutton (Deque Systems)
Building a better web means removing barriers for users and helping them live more productive lives. Marcy Sutton explores how the work we do with technology can have a monumental impact on the lives of people with disabilities by providing independence, privacy, and growth opportunities. But making a positive impact depends on our willingness to do the work.
8:00am-8:15am (15m)
Break: Coffee break (8am - 9am) sponsored by SalesForce
8:15am-8:45am (30m) Event
Wednesday Speed Networking
Meet us Wednesday morning and get to know fellow attendees in quick, 60-second discussions.
10:30am-11:00am (30m)
Break: Morning break sponsored by Oracle
11:40am-1:00pm (1h 20m)
Wednesday lunch and Birds of a Feather sessions
Birds of a Feather (BoF) sessions provide face-to-face exposure to those interested in the same projects and concepts. BoFs can be organized for individual projects or broader topics (best practices, open data, standards, etc.). BoFs are entirely up to you. We post your topic and provide the space and time. You provide the engaging topic.
2:45pm-3:35pm (50m)
Break: Afternoon break sponsored by Microsoft
5:15pm-6:30pm (1h 15m) Event
Exhibit Hall Reception
Join us in the Exhibit Hall for the Exhibit Hall Reception on Wednesday, June 21, following the afternoon sessions.
6:30pm-9:00pm (2h 30m)
DevOps & Development After Dark
Join us at the San Pedro Square Market, where you can enjoy the best of local food, drink, and entertainment and have a chance to win amazing prizes. Attendees of both Fluent and Velocity are invited, so you'll have the opportunity to network with everyone.