ForwardJS 2019 Schedule


January 24th, 2019

8:30am
9:15am

Registration

Exhibit Hall: Gold Rush Ballroom (Downstairs)
Come say hello, grab your name badge and say hello!

Registration

Exhibit Hall : Gold Rush Ballroom (Downstairs)
08:30am - 09:15am

9:20am
10:10am

General Session: GraphQL spacesuit for Vue

Gerard Sans
Track 1: Emerald Ballroom (Upstairs)

General Session: GraphQL spacesuit for Vue

Gerard Sans
Track 1 : Emerald Ballroom (Upstairs)
09:20am - 10:10am

In this talk we are going to launch a regular Vue App into orbit. We will get the job done using a GraphQL spacesuit. We will cover all its flashy features like declarative collocated queries, schema-first and explore some more for seasoned astronauts like real-time and offline support. Get ready to explore the outer space with GraphQL!

10:10am
10:45am

Morning Break!

Exhibit Hall: Gold Rush Ballroom (Downstairs)
Come grab some caffeine to get your day started

Morning Break!

Exhibit Hall : Gold Rush Ballroom (Downstairs)
10:10am - 10:45am

Come grab some caffeine to get your day started

10:45am
11:25am

Porting 100K lines of code to TypeScript

Millie Macdonald
Track 1: Emerald Ballroom (Upstairs)

Porting 100K lines of code to TypeScript

Millie Macdonald
Track 1 : Emerald Ballroom (Upstairs)
10:45am - 11:25am

TinyMCE is a well-known JavaScript library for rich text editing. In 2017, we migrated the entire codebase to TypeScript. Find out the tools we used, challenges we faced and the advantages we are now experiencing.

10:45am
11:25am

Mobile AR: Web vs App

Hermes Frangroudis
Track 2: Crystal Ballroom (Downstairs)

Mobile AR: Web vs App

Hermes Frangroudis
Track 2 : Crystal Ballroom (Downstairs)
10:45am - 11:25am

AR’s take on the “Great Debate”, is it better to build platform specific apps or a web app? Can Web-based AR compete with Apps?

10:45am
11:25am

Functions as a Service

Upkar Lidder
Track 3: California/Washington (Downstairs)

Functions as a Service

Upkar Lidder
Track 3 : California/Washington (Downstairs)
10:45am - 11:25am

Curious about serverless / function-as-a-service [FAAS] / cloud functions technologies, but haven't had a chance to dig in? Wondering what all the excitement is about? In this hands-on workshop, you'll learn: -- the current state of the FAAS ecosystem & major players (including IBM Cloud Functions) -- recognized ideal use cases for serverless solutions -- emerging best practices for serverless architectures -- good sources of information to keep abreast of new developments

11:30am
12:10pm

Introduction to Machine Learning in Tensorflow.js

Nick Kreeger
Track 1: Emerald Ballroom (Upstairs)

Introduction to Machine Learning in Tensorflow.js

Nick Kreeger
Track 1 : Emerald Ballroom (Upstairs)
11:30am - 12:10pm

Description TBD

11:30am
12:10pm

GraphQL Without GraphQL - Backend Agnostic Requests with GraphQL style querying

Conor Hastings
Track 2: Crystal Ballroom (Downstairs)

GraphQL Without GraphQL - Backend Agnostic Requests with GraphQL style querying

Conor Hastings
Track 2 : Crystal Ballroom (Downstairs)
11:30am - 12:10pm

GraphQL offers tons of benefits,. The colocation of data is the most revolutionary to me. What if we could utilize existing the GraphQL query parser but talk to any backend? I’ll explore how we can use GraphQL style data fetching without a GraphQL backend to bring colocation of data in the GraphQL query format that is source agnostic.

12:10pm
1:20pm

Lunch Time!

Exhibit Hall: Gold Rush Ballroom (Downstairs)
Lunch provided by Agora.io downstairs in Gold Rush

Lunch Time!

Exhibit Hall : Gold Rush Ballroom (Downstairs)
12:10pm - 01:20pm

Lunch will be provided for all attendees thanks to our awesome sponsor, Agora.io

1:20pm
1:35pm

What Crafting Taught Me about Code

Sarah Federman
Track 1: Emerald Ballroom (Upstairs)

What Crafting Taught Me about Code

Sarah Federman
Track 1 : Emerald Ballroom (Upstairs)
01:20pm - 01:35pm

What could a bunch of DIY Pinterest projects teach us about coding? There's hidden insights everywhere in your life if you know where to look. Let's talk about the power of pattern recognition, how to practice it, and how embracing it can enrich your team!

1:20pm
1:35pm

Make Fun, Make Music with Node.js

Lizzie Siegle
Track 2: Crystal Ballroom (Downstairs)

Make Fun, Make Music with Node.js

Lizzie Siegle
Track 2 : Crystal Ballroom (Downstairs)
01:20pm - 01:35pm

Make music with code! Use an npm module to make notes, chords, and scales, building songs from music online as well as from ones you dream up. The module is able to use obscure scales like Hungarian gypsy and bebop dominant, and augmented and diminished scales, as well as more simple ones too.

1:20pm
2:00pm

Yo Dawg, I Heard You Like (Angular) Components

Michael Solati
Track 3: California/Washington (Downstairs)

Yo Dawg, I Heard You Like (Angular) Components

Michael Solati
Track 3 : California/Washington (Downstairs)
01:20pm - 02:00pm

You write React for work, but you don't want to no mo'. You ask your boss, please? But he still says, no! How about instead of missing class, you try something different? Well, the Angular team has something cool for you... Angular elements! Angular elements are Angular components packaged as custom elements, a web standard for defining new HTML elements in a framework-agnostic way. Learn how to write and package your Angular components to be used across any framework (or no framework) by extending HTML to allow you to define a tag whose content is created and controlled by your Angular code. Now you can put your Angular components into any other frameworks components! (You gotta fight for your right to write Angular!)

1:40pm
2:00pm

Immutability is Changing: From Immutable.js to Immer

Shawn Swyx Wang
Track 1: Emerald Ballroom (Upstairs)

Immutability is Changing: From Immutable.js to Immer

Shawn Swyx Wang
Track 1 : Emerald Ballroom (Upstairs)
01:40pm - 02:00pm

The need for immutability in JavaScript isn’t obvious, but Immutable.js swept the Javascript world in 2015 when it enforced a stricter, more functional approach to code without any need for deep comparisons. Then Immer was introduced in 2018, and took the Javascript world by storm. What's different? What's better? And what do ES6 Proxies have to do with it?

1:40pm
2:00pm

Mobile Serverless Backend as a Service (yet in Swift!!!)

Marek Sadowski
Track 2: Crystal Ballroom (Downstairs)

Mobile Serverless Backend as a Service (yet in Swift!!!)

Marek Sadowski
Track 2 : Crystal Ballroom (Downstairs)
01:40pm - 02:00pm

So you've been hearing a lot of buzz about Serverless tech in conjunction with Mobile, but what exactly is the serverless or cloud functions? Come find out at this session. Serverless has become the new style of coding, and it might be perfect to offload your mobile apps without incurring unnecessary costs. Get an intro into serverless/function-as-a-service/cloud functions technologies in the Mobile-Backend-as-a-Service (MBaaS) context and learn why startups and enterprises are so excited about using it. We will be demoing Serverless in Swift and iOS, and covering the following: - Who are the players in the serverless ecosystem - What are some use cases for serverless solutions - with MBaaS as one of them - Best practices for the serverless architecture for MBaaS - If going serverless is really faster, better, cheaper for developers and organizations - Live coding examples using Swift

2:05pm
2:45pm

Panel: The secret sauce in Open Source

Cassandra Salisbury and Paris Pittman
Track 1: Emerald Ballroom (Upstairs)

Panel: The secret sauce in Open Source

Cassandra Salisbury and Paris Pittman
Track 1 : Emerald Ballroom (Upstairs)
02:05pm - 02:45pm

Interactive Q&A on open source software with Cassandra and Paris from Google. Bring your questions!

2:05pm
2:45pm

Mentorship: The Awesome Parts

Suraksha Pai
Track 2: Crystal Ballroom (Downstairs)

Mentorship: The Awesome Parts

Suraksha Pai
Track 2 : Crystal Ballroom (Downstairs)
02:05pm - 02:45pm

As developers, we go through different phases in our career. In the initial periods, the focus is mainly on understanding core concepts, tenaciously solving problems, and incorporating constructive feedback. Soon, responsibilities come in the form of designing large systems, collaboration with people, both on a team and across organizations, and providing constructive feedback. This talk is about how mentorship plays a significant role in the development of both technical and people skills.

What is Mentorship? What values do you learn as a mentee, or a mentor, or both? How does mentorship have a positive impact on your career? These questions are answered using examples from my journey- first as a mentee, and then as a mentor at Yelp! All that sounds great, but how does one start finding a mentor or a mentee, you ask? You’re about to find out!

2:05pm
2:45pm

Managing Frontend State with Relational Transducers

Yifan Wu
Track 3: California/Washington (Downstairs)

Managing Frontend State with Relational Transducers

Yifan Wu
Track 3 : California/Washington (Downstairs)
02:05pm - 02:45pm

Interactive application are becoming increasingly data intensive, running into challenges of asynchrony/consistency, and performance/networking. This talk will show how we can use a database management over interaction history to model the interactive application, and an accompany demo of a new JS library based on relational transducers.

2:50pm
3:30pm

Panel: User Experience vs Developer Experience: Women and Whiskey

Jina Anne, Diane Tate, Sarah Federman, Estelle Weyl, and Tomomi Imura
Track 1: Emerald Ballroom (Upstairs)

Panel: User Experience vs Developer Experience: Women and Whiskey

Jina Anne, Diane Tate, Sarah Federman, Estelle Weyl, and Tomomi Imura
Track 1 : Emerald Ballroom (Upstairs)
02:50pm - 03:30pm

Our expert panel discusses the intricacies of designing and building products from the perspective of UX and the emerging field of DX.

2:50pm
3:30pm

WebAssembly's Post-MVP Future

Till Schneidereit and Lin Clark
Track 2: Crystal Ballroom (Downstairs)

WebAssembly's Post-MVP Future

Till Schneidereit and Lin Clark
Track 2 : Crystal Ballroom (Downstairs)
02:50pm - 03:30pm

If the web were a video game franchise, then WebAssembly would be its latest hero...

“During the first part of our journey, our hero completed the first quest—making it possible to play PC games and build applications like AutoCAD on the web. But this journey is far from over! Many a quest awaits; whole worlds are left to explore! The browser, and our hero’s current skill set, is just the beginning.”

In this talk, we’ll explore both charted and uncharted areas—from the JavaScript-rich lands of the browser, to the darkest reaches of the blockchain, to the airy heights of the cloud with CDNs, and more! And we’ll map out all of the features we need to unlock to take us to these new heights: Threading Garbage collection ES module integration and more!

2:50pm
3:05pm

Making Canvas Elements Respond Like DOM Even on Mobile

Stefan Musarra
Track 3: California/Washington (Downstairs)

Making Canvas Elements Respond Like DOM Even on Mobile

Stefan Musarra
Track 3 : California/Washington (Downstairs)
02:50pm - 03:05pm

A UI Pattern combining Constrained Draggable, Scrollable, and Scrollbar.

3:10pm
3:30pm

Debugging the Scariest Development Environments: End the nightmares with tools like envinfo and Solidarity

Trevor Brindle
Track 3: California/Washington (Downstairs)

Debugging the Scariest Development Environments: End the nightmares with tools like envinfo and Solidarity

Trevor Brindle
Track 3 : California/Washington (Downstairs)
03:10pm - 03:30pm

In a world where perpetually confused developers can’t quite get their environments working, new libraries emerge from the ashes of lost productivity: envinfo and Solidarity. Escape the complexity and witness the rise of projects embracing change to save their projects from themselves.

3:30pm
4:05pm

Afternoon Break!

Exhibit Hall: Gold Rush Ballroom (Downstairs)
Take a break, you've earned it!

Afternoon Break!

Exhibit Hall : Gold Rush Ballroom (Downstairs)
03:30pm - 04:05pm

4:05pm
4:45pm

Chatbot Goes Serverless: Slacking Around on Google Cloud

Tomomi Imura
Track 1: Emerald Ballroom (Upstairs)

Chatbot Goes Serverless: Slacking Around on Google Cloud

Tomomi Imura
Track 1 : Emerald Ballroom (Upstairs)
04:05pm - 04:45pm

Whether you're using Slack at work or not, chatbots and tools that run on the chat-based platform are handy and useful, and have gained popularity. In this talk, Tomomi will show you use cases and best practices of chatbots user experience and explains how to build scalable bots using GCP serverless technologies.

Come join me even if you don't currently build Slack bots or use Google Cloud Platform. It's a fun talk and hopefully you learned something new

4:05pm
4:45pm

Security Issues in Modern JavaScript Applications

Amanvir Sangha
Track 2: Crystal Ballroom (Downstairs)

Security Issues in Modern JavaScript Applications

Amanvir Sangha
Track 2 : Crystal Ballroom (Downstairs)
04:05pm - 04:45pm

Developers are keeping up with JavaScript, but are they keeping up with security? This talk covers prevalent but not well known security issues in modern full stack JavaScript applications and how to avoid them, with a focus on applications built in the last two years.

4:05pm
4:45pm

Testing, Testing, 1, 2, NaN

Gant Laborde
Track 3: California/Washington (Downstairs)

Testing, Testing, 1, 2, NaN

Gant Laborde
Track 3 : California/Washington (Downstairs)
04:05pm - 04:45pm

Santa Clause, The Free Lunch, and JS Testing - All myths? We all know Testing is key, but it’s not easy. What are your options, what exists, and what works? Let’s talk about it all. What tools exist, and what matters in testing React and React Native.

4:50pm
5:30pm

Panel: Front End Happy Hour

Jem Young, Brian Holt, Stacy London, Ryan Anklam, Augustus Yuan, Ryan Burgess, and Mars Jullian
Track 1: Emerald Ballroom (Upstairs)

Panel: Front End Happy Hour

Jem Young, Brian Holt, Stacy London, Ryan Anklam, Augustus Yuan, Ryan Burgess, and Mars Jullian
Track 1 : Emerald Ballroom (Upstairs)
04:50pm - 05:30pm

Front End Happy Hour is a podcast that features a panel of Software Engineers engaging in discussions about front-end development topics while enjoying happy hour beverages.

4:50pm
5:05pm

Trading the Cascade for Consistency

Theresa Ma
Track 2: Crystal Ballroom (Downstairs)

Trading the Cascade for Consistency

Theresa Ma
Track 2 : Crystal Ballroom (Downstairs)
04:50pm - 05:05pm

The cascade is a beautiful and troublesome thing - the infinite inheritance is arguably the best and worst part of CSS. We rely on it for setting styles in context and base styles and we try to protect it from naming collisions and specificity wars through all sorts of conventions in the classic markup + css world. Since migrating to React, we’ve had to do things a bit differently. This is the story of why we traded in the cascade for consistency and how we fumbled and figured our way through the challenges of CSS in React, eventually getting to a production quality design system.

How do we deal with reusable CSS in a design system centric world? Problems with the cascade: consistent BEM style naming conventions allow styles to easily be manually overridden & with hundreds of devs, our frontend infra team can’t be on every css code review If we give up the cascade and everything in CSS Modules becomes namespaced, how do we share basic styles that we want to include across all our components’ pages besides dumping globals on a page?

We based our solution on two key requirements: Components should be able to be used in isolation from one another Components need to be generic enough for developers to use across the site, but consistent enough that they adhere to our design system

This talk will cover some options as to how to write CSS in React without going down the CSS in JS route, alternatives to using global styles, specificity issues, baking meyer reset into base components, patterns around component abstractions, how to deal with no longer having the cascade part of styling when components interact, etc. This is a more in-depth talk version of https://engineeringblog.yelp.com/2018/03/css-in-the-age-of-react.html

4:50pm
5:30pm

Measuring Latency In Single-Page Applications

Jordan Hawker
Track 3: California/Washington (Downstairs)

Measuring Latency In Single-Page Applications

Jordan Hawker
Track 3 : California/Washington (Downstairs)
04:50pm - 05:30pm

You've launched your application, and now you've been asked to optimize it. How do you know how fast it is? Is your data accurate and actionable? We'll explore both generic and framework-specific approaches to instrumenting your application, along with real-world examples of how to put these techniques in practice!

5:10pm
5:30pm

Creating WebVR for Communal Art

Andrés Cuervo
Track 2: Crystal Ballroom (Downstairs)

Creating WebVR for Communal Art

Andrés Cuervo
Track 2 : Crystal Ballroom (Downstairs)
05:10pm - 05:30pm

In this talk I'll go through how I created interface elements for a WebVR installation at JSConf EU 2018, getting started with WebVR, & ideas for the future of WebVR art!

5:30pm
7:00pm

ForwardJS After Party

Lush Lounge, 1221 Polk St

ForwardJS After Party

05:30pm - 07:00pm

Join us for some complimentary imbibements at Lush Lounge, a couple blocks from the conference venue (downhill!) FYI, the code of conduct still applies to all social activities associated with the conference.