Forward JS: The Schedule

March 1st, 2017, Holiday Inn Golden Gateway, San Francisco


8:30am
9:30am

Registration

JS Break: Gold Rush Room (Downstairs)
Come say hello, grab your name badge and coffee downstairs

Registration

JS Break : Gold Rush Room (Downstairs)
08:30am - 09:30am

9:30am
10:20am

Panel - Analytics, Automation and Intelligent Agents

Tomomi Imura , Nilkanth Patel, Ari Gesher, Tina Chen, and Todd Margolis
JS Track 1: Emerald Room (Upstairs, main room)

Panel - Analytics, Automation and Intelligent Agents

Tomomi Imura , Nilkanth Patel, Ari Gesher, Tina Chen, and Todd Margolis
JS Track 1 : Emerald Room (Upstairs, main room)
09:30am - 10:20am

As the structural analysis of more and more data leads to deeper insights, how can analytics platforms harness the power of automation? Can autonomous, intelligent agents drive more understanding about the anatomic processes behind the statistics?

10:20am
11:00am

Coffee Break

JS Break: Gold Rush Room (Downstairs)
Join us downstairs in the Gold Rush room and get some extra caffeine for the morning sessions.

Coffee Break

JS Break : Gold Rush Room (Downstairs)
10:20am - 11:00am

11:00am
11:40am

Hacking Web Performance

Max Firtman
JS Track 1: Emerald Room (Upstairs, main room)

Hacking Web Performance

Max Firtman
JS Track 1 : Emerald Room (Upstairs, main room)
11:00am - 11:40am

After we understand how important Web Performance is and we've applied basic techniques, what's next? In this session we will cover extreme techniques that will blown your mind about Web Performance. New compression algorithms? new image formats? Client Hints? 14.6Kb? Let's hack Web Performance.

After quickly reviewing new metrics such as Speed Index and the RAIL goals, we will get deeply into advanced hacks to increase perception and performance on the web and PWAs.

We will cover the updated checklist of techniques to improve experience and perception and recent additions and hacks, such as: the usage of HTTP/2, how to replace PNGs and JPEGs, HTTP Client Hints, better compression encoding algorithms available, browser's prefetching and lazy loading new abilities and how advanced techniques on top of Service Workers can help improving conversion and reduce user's frustration.

We'll cover some extreme new ideas, such as serving ATF content in 14Kb, using magician tricks or how to use new APIs to make decisions on the fly.

We will finally talk about how we usually underestimate the Web on mobile devices, including the relationship between Responsive Web Design and Web Performance and why new controversial subsets of the Web have appeared and what we can learn from them -Google's AMP (Accelerated Mobile Pages) and Facebook's Instant Articles-.

11:00am
11:40am

Performant 2D WebGL animations with PIXI.js

Larry Gordon
JS Track 2: Crystal Room (Upstairs, end of hallway)

Performant 2D WebGL animations with PIXI.js

Larry Gordon
JS Track 2 : Crystal Room (Upstairs, end of hallway)
11:00am - 11:40am

With just a little knowledge you can create really performant 2D WebGL animations with PIXI.js and TWEEN.js. In this talk I’ll show you how to create a simple requestAnimationFrame engine that will allow you to achieve smooth 60fps frame rates that won’t kill your battery.

11:00am
11:40am

Decisions Considered Harmful

Anna Harrison
JS Track 3: Redwood Room (Downstairs)

Decisions Considered Harmful

Anna Harrison
JS Track 3 : Redwood Room (Downstairs)
11:00am - 11:40am

Developing software that exhibits flexibility of choice to the end user is considered best-practice: we’ll make it configurable, and let the user decide. Right? Wrong.

In an era where Experiences are coveted more highly than Products, and users are overloaded with choice and burnt-out from decision fatigue, the worst possible coding choice that you can make is to gift the user with options.

In this example-packed presentation, we show how limiting choice and reducing features can add value to your next app.

11:00am
11:40am

Serverless or Bust

Ray Camden
JS Track 4: Gold Rush Room (Downstairs w/sponsors)

Serverless or Bust

Ray Camden
JS Track 4 : Gold Rush Room (Downstairs w/sponsors)
11:00am - 11:40am

Serverless is an exciting new way for developers to set up their back end. Less management, more code, what can go wrong with that? In this talk, I'll explain what serverless is, where it does, and does not, make sense, and then talk about the open source OpenWhisk project and how developers can use it to kick their server to the curb!

11:50am
12:30pm

Creating more efficient React views with windowing

Brian David Vaughn
JS Track 1: Emerald Room (Upstairs, main room)

Creating more efficient React views with windowing

Brian David Vaughn
JS Track 1 : Emerald Room (Upstairs, main room)
11:50am - 12:30pm

Learn how to speed your React views up by only rendering what the user wants to see. This technique (commonly referred to as "windowing") is easy to integrate into existing views and can provide huge performance gains.

11:50am
12:30pm

Finding your edge in a culture of feedback

Paulette Luftig
JS Track 2: Crystal Room (Upstairs, end of hallway)

Finding your edge in a culture of feedback

Paulette Luftig
JS Track 2 : Crystal Room (Upstairs, end of hallway)
11:50am - 12:30pm

Have you ever wished for more feedback from colleagues to help you get better at your job? When’s the last time you offered helpful feedback to someone else? Imagine an entire company fluent in the daily practice of giving and receiving constructive feedback. Would your experience improve? What does a team lose when feedback doesn’t flow?

Feedback conversations can be difficult. But giving and receiving feedback pushes us to the edge of our growth potential, where the biggest payoffs occur. Join this session to grow your career by learning how to get real.

This talk is intended for a broad audience within the tech community. Topics covered include:

  • The three main types of feedback
  • How practicing feedback contributes to growth mindset over fixed mindset
  • The role of perfectionism in a culture of feedback
  • Assumptions about who is expected to give and receive feedback in organizations
  • Important questions to ask before offering feedback to others
  • Practical steps for setting up and structuring feedback conversations
  • Empathy as non-negotiable on both sides of the conversation
  • The A.S.K. acronym (feedback should be Actionable, Specific and Kind)
  • The upside of radical candor
  • Healthy emotional responses to feedback
  • Marshall Rosenberg’s Nonviolent Communication
  • What giving and receiving feedback absolutely is NOT
  • When to involve a third party

By covering this content, my hope is to inspire tech industry players to take steps towards creating (or enhancing) a culture of feedback within their organization and on their teams. In addition, attendees will gain insight into their strengths and limitations around giving feedback and receiving it. Finally, attendees will learn ways to trust themselves and others more when engaging in difficult conversations.

11:50am
12:30pm

Mozart Could've Been an Engineer - Music + Code

Catherine Meyers
JS Track 3: Redwood Room (Downstairs)

Mozart Could've Been an Engineer - Music + Code

Catherine Meyers
JS Track 3 : Redwood Room (Downstairs)
11:50am - 12:30pm

Would you hire an opera singer to build your website? A pianist to build your mobile app? After this talk, you might not think it’s a crazy idea.

As I transitioned from professional opera singer to web developer, I was blown away by the many parallels between music and code. During this talk, you’ll learn about these parallels by examining the similarities in syntax, structure, and learning process. We’ll compare “Mary Had a Little Lamb” to a “Hello, World” app, and we’ll see how Bach might have coded a React Todo app.

Through these examples, we’ll see how musical training strengthens pattern recognition, problem solving and collaboration, helping us become better software engineers.

Warning: parts of this talk may be sung. Yes, you may bring your own instruments.

11:50am
12:30pm

The JavaScript Software Factory

Chris Castle
JS Track 4: Gold Rush Room (Downstairs w/sponsors)

The JavaScript Software Factory

Chris Castle
JS Track 4 : Gold Rush Room (Downstairs w/sponsors)
11:50am - 12:30pm

Software development with a team is difficult. In Fred Brooks’ seminal The Mythical Man-Month, he asserts that “adding manpower to a late software project makes it later”. There may not be a single silver bullet to address this, but maybe we can make incremental improvements?

I’ll share some tips and tricks you can apply to make software development more efficient, flexible, and fun for you, your team, and your company. As a bonus, I’ll also give you the lazyweb version of academia’s analysis of this problem (going back as far as the 1960s!).

12:30pm
1:40pm

Lunch

JS Break: Gold Rush Room (Downstairs)
Grab a boxed lunch downstairs in Gold Rush, and chow down wherever you like

Lunch

JS Break : Gold Rush Room (Downstairs)
12:30pm - 01:40pm

1:40pm
2:20pm

Practical Service Workers

Jem Young
JS Track 1: Emerald Room (Upstairs, main room)

Practical Service Workers

Jem Young
JS Track 1 : Emerald Room (Upstairs, main room)
01:40pm - 02:20pm

It’s 2017 and the Service Worker is here! As the backbone of Progressive Web Applications, Service Workers are poised to be the most important technology to happen to the web ecosystem since AJAX. This talk gives a pragmatic look at Service Workers, why they are important, and how you can use them today to build some really cool applications.

1:40pm
2:20pm

Writing JavaScript That is Easy to Reason About

Preethi Kasireddy
JS Track 2: Crystal Room (Upstairs, end of hallway)

Writing JavaScript That is Easy to Reason About

Preethi Kasireddy
JS Track 2 : Crystal Room (Upstairs, end of hallway)
01:40pm - 02:20pm

JavaScript is a versatile, high level and forgiving language with a low barrier to entry — no type system, no compilation, no complex developer environments, nothing to install, and global support in any browser. Moreover, the immediate feedback cycle in the browser makes it a great choice for newbies who are looking to get into programming.

Yet, the same characteristics that make JavaScript easy to learn are also what make it difficult to write code that is "easy to reason about".

In this talk, we’ll look at what it means to write code that is "easy to reason about" and why it’s easy to write JavaScript that is hard to reason about. We’ll then explore different methodologies and tools we can use to make our JavaScript code simpler, safer, more reliable and more predictable.

With a little effort, it becomes possible to write JavaScript code that is easy to reason about.

1:40pm
2:20pm

How to Perform a Library Autopsy

Zack Argyle
JS Track 3: Redwood Room (Downstairs)

How to Perform a Library Autopsy

Zack Argyle
JS Track 3 : Redwood Room (Downstairs)
01:40pm - 02:20pm

Contributing to open-source is a great way to grow your skills, but digging into the internals of your favorite JS libraries can be daunting. Using popular repos as examples, we'll go through some tips and tricks to dissecting the organs of an open-source project. When we're done, we'll all be certified JS Pathologists.

1:40pm
2:20pm

Intro to EON.js

Lizzie Siegle
JS Track 4: Gold Rush Room (Downstairs w/sponsors)

Intro to EON.js

Lizzie Siegle
JS Track 4 : Gold Rush Room (Downstairs w/sponsors)
01:40pm - 02:20pm

Get introduced to EON, the fascinating framework for graphing, mapping, and charting realtime data. We will cover the foundations of how the framework works, how to use JavaScript to build apps for web, iOS and Android, as well as what it is capable of. We will also explore different use cases for EON.

2:30pm
3:10pm

Speed Perception: understanding and measuring perceived performance

Estelle Weyl and Parvez Ahammad
JS Track 1: Emerald Room (Upstairs, main room)

Speed Perception: understanding and measuring perceived performance

Estelle Weyl and Parvez Ahammad
JS Track 1 : Emerald Room (Upstairs, main room)
02:30pm - 03:10pm

Clearly, no one likes slow loading webpages, but what aspects of page loading contribute to human end-user perception of “speed”? “SpeedPerception” is an open-source experimental framework and a study that we developed to understand what “slow” and “fast” mean to the human end-user.

Traditional web performance metrics defined in W3C standards focus on timing each process along the content delivery pipeline, such as Time to First Byte (TTFB) and Page Load Time. We wanted to tackle the web performance measurement challenge by looking at it from a different angle: one which puts user experience into focus. Since people primarily consume the web visually, we focused on the visual perception of the webpage loading process. SpeedPerception is a systematic study of how human end-users perceive the webpage loading process: the above-the-fold rendering in particular: objectively measuring the subjective notion of “feels fast”.

Studies have shown that instead of only focusing on page load time, if we shift the focus to address perceived performance directly, we can make our web applications feel even faster even if we have to download the same number of bytes. What metrics do we need to measure to objectively test if a site load feels fast? We’re looking into the impact of blanks screens, long DOMContentLoaded events, pop ups, passive versus active wait times, jitter, and other factors have on perceived performance, and how to measure the improvements in these features. We looked at browser metrics like time to first byte, render start, visual completion, etc., to construct a fusion model that can give the most insight into subjective judgments of “Speed Perception”.

2:30pm
3:10pm

Fullstack End-to-End Test Automation with Node.js; one year later

Mek Stittri and Chris Clayman
JS Track 2: Crystal Room (Upstairs, end of hallway)

Fullstack End-to-End Test Automation with Node.js; one year later

Mek Stittri and Chris Clayman
JS Track 2 : Crystal Room (Upstairs, end of hallway)
02:30pm - 03:10pm

Airware builds hardware, software and cloud for commercial drones. We have transitioned to Node.js for cloud functional test automation in 2015. The purpose of this is to unite Fullstack developers and Automation engineers to speak in the same language which is JavaScript. With a year worth of lessons learnt, we will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.

2:30pm
3:10pm

Static Sites through SPAs and GraphQL

Chris Biscardi
JS Track 3: Redwood Room (Downstairs)

Static Sites through SPAs and GraphQL

Chris Biscardi
JS Track 3 : Redwood Room (Downstairs)
02:30pm - 03:10pm

LEO is a highly extensible static site generator based on Webpack. It uses a unified GraphQL data pipeline to enable any universal frontend technology to generate traditional and modern (App Shell) static sites.

2:30pm
3:10pm

TypeScript in Action

Dr. Doris Chen
JS Track 4: Gold Rush Room (Downstairs w/sponsors)

TypeScript in Action

Dr. Doris Chen
JS Track 4 : Gold Rush Room (Downstairs w/sponsors)
02:30pm - 03:10pm

TypeScript, an open source project, has seen enormous growth over the past year. Today, it is used to build several key frameworks like AngularJS, Ionic etc. Across the board developers are falling in love with TypeScript as they find it to be the most productive way to work with JavaScript. In this talk, Doris will go through how TypeScript enables you to leverage features from the current and future of JavaScript while increasing the productivity of JavaScript development across the board. As ECMAScript 6 gains popularity and more browsers are implementing the standard, JavaScript developers across the board are beginning to wonder, 'what's next?' This session will cover some of the latest features of TypeScript, including future ECMAScript proposals, support for Angular and React/JSX, the state of the art type system capabilities, and how it all comes together to make working and creating things in JavaScript more productive and fun with TypeScript.

3:10pm
3:45pm

Coffee and Fruit

JS Break: Gold Rush Room (Downstairs)
One cannot survive on coffee alone... although we haven't tested this empirically. Come downstairs for a caffeine update

Coffee and Fruit

JS Break : Gold Rush Room (Downstairs)
03:10pm - 03:45pm

3:45pm
4:25pm

React exposed

Ben Ilegbodu
JS Track 1: Emerald Room (Upstairs, main room)

React exposed

Ben Ilegbodu
JS Track 1 : Emerald Room (Upstairs, main room)
03:45pm - 04:25pm

React’s seemingly “magical” features make developing sophisticated web UIs easy by doing so much heavy lifting for us. Unfortunately, without knowing how certain parts of the “magic” work, we run into confusing React warnings/errors.

Why can’t we have “if blocks” in our JSX code? Why do we need to wrap multiple sibling components in a container component? Why do we need to include a “key” attribute on components that are in an array?

In this session geared towards those familiar with React, let’s answer these questions by digging deeper into JSX syntax, virtual DOM diffing and other “magical” features. Not only will we be able to prevent errors with a clearer understanding of the “magic,” but we can potentially boost rendering performance as well.

3:45pm
4:25pm

Webpack: It's Not Magic

Naomi Jacobs
JS Track 2: Crystal Room (Upstairs, end of hallway)

Webpack: It's Not Magic

Naomi Jacobs
JS Track 2 : Crystal Room (Upstairs, end of hallway)
03:45pm - 04:25pm

Webpack seems to have taken over the JavaScript world, and people are singing its asset-compilation praises everywhere. No need to include tons of script tags in your HTML! No more worrying about dependency ordering! Now you can smoosh all your files together into a single asset! It's the future!

You've taken a look at Webpack's docs. They are confusing, and the API is obscure. But did you know Webpack's core functionality is so simple you could write it yourself? No, seriously! If you understand closures in JavaScript, you can understand Webpack. If you've wanted to use Webpack but were intimidated by how complicated it is, this talk is for you. We'll walk through a step-by-step example, turning a repo of separate files into a single asset by recreating Webpack's process. You’ll leave with a super-solid mental model of Webpack and the ability to read its output and debug like a pro.

3:45pm
4:25pm

Async in Redux

Freddy Rangel
JS Track 3: Redwood Room (Downstairs)

Async in Redux

Freddy Rangel
JS Track 3 : Redwood Room (Downstairs)
03:45pm - 04:25pm

The number of approaches for asynchronous operations in Redux is dizzying. Thunks, Promises, Sagas, Observables, etc. all handle async in radically different ways. This talk will go over the state of async in Redux, explaining the tradeoffs with each approach.

4:35pm
5:15pm

React + X: Best practices for reusable UI components

Mars Jullian
JS Track 1: Emerald Room (Upstairs, main room)

React + X: Best practices for reusable UI components

Mars Jullian
JS Track 1 : Emerald Room (Upstairs, main room)
04:35pm - 05:15pm

React is awesome but even good frameworks don’t prevent you from writing bad code. This talk will focus on some key principles for writing reusable UI components that will make them fun to use and keep your co-workers from going crazy.

React components are also very portable, allowing them to be used in various frameworks and build systems. The second half of this talk will focus on how to package and distribute reusable UI components so they can be used in a variety of project setups.

4:35pm
5:15pm

Building Universal Apps with React

Elyse Kolker Gordon
JS Track 2: Crystal Room (Upstairs, end of hallway)

Building Universal Apps with React

Elyse Kolker Gordon
JS Track 2 : Crystal Room (Upstairs, end of hallway)
04:35pm - 05:15pm

Universal (a.k.a. isomorphic) architecture is an evolution of how we build apps for the web. It offers performance benefits for your users and SEO benefits for your business. ReactJS and the virtual dom make it possible to write code once that will run on the server and the browser. Using React, Redux and webpack, we will learn how to build an app that can be server rendered by Node.JS and also function as a Single Page Application in the browser. We will discuss some of the challenges with building universal apps including synchronizing data between the server and browser and knowing when to write environment specific code.

5:15pm
6:30pm

TACO WEDNESDAY

Some people celebrate Taco Tuesday. Those people? AMATEURS. Join us at Nick's Crispy Tacos at Polk & Broadway for tacos and libations. (Six blocks North of the Holiday Inn.)

TACO WEDNESDAY

05:15pm - 06:30pm