Patricia Realini

Patricia Realini

Los Angeles, United States

Patricia is a front end engineer, an artist, and a woman dedicated to intersectional inclusivity for underrepresented minorities in tech. Her projects have included: a workshop on intersectionality & effective allyship at DinosaurJS in Denver, Colorado, D&I panelist for Processing Foundation & NYU, and hands-on community organizing. When she's not writing javascript, she's writing documentation. When she's not writing docs, she's collecting records and recipe testing.

"Is A Hot Dog A Sandwich?" And Other Analogies Not To Trifle With

Metaphors are an essential means of communication and method of teaching for developers. Without them and Lin Clark it would be much more difficult for teams to adopt Redux. But learning by association has it's limits. When we only discuss the things we can relate to we reinforce existing stereotypes that box us in. Instead of thinking outside the box, we will discuss how thinking about the box itself is the key to breaking down our unconscious bias. Together we will learn how to dismantle the concepts that divide us, techniques for better engaging with people of all backgrounds, and how to empower the systems we work in to be even more performant than our code.

Suz Hinton

Suz Hinton

New York, United States

Suz is a Cloud Developer Advocate at Microsoft. Suz specializes in accessibility, hardware, JavaScript, and cloud computing. She likes dreaming up fun electronic projects in her spare time.

I'm afraid your browser has been talking to the robots again - a gentle intro to WebUSB

The browser’s capibilities have snuck up on us over the years, and it’s turned into a full blown operating system! "But wait," I hear you protest, "it’s not like the browser can talk to stuff I have plugged in to my USB ports!". Ah! But it can!

The new WebUSB spec has arrived, and is already supported in at least one browser today. The previous hacks of connecting browsers to robots and other hardware will soon be a thing of the past. WebUSB as a first class API citizen opens up some great opportunities to create new and delightful experiences with robotics.

I’ll introduce you to the WebUSB API, its history, and compare it to previous ’hacks’ to demonstrate why this is such a big deal for you, as a web developer. There will be real hardware shown on stage ready to inspire you to think outside of the box of what browsers are really meant to be used for.

Mathias Bynens

Mathias Bynens

Munich, Germany

Mathias works on V8 at Google, and ❤️ JavaScript, HTML, CSS, HTTP, performance, security, Bash, Unicode, i18n, macOS.

$JAVASCRIPT_ENGINE internals for JavaScript developers

This presentation demonstrates how learning just a little bit about JavaScript engine internals can help you improve the run-time performance of your JavaScript code — not just in $JAVASCRIPT_ENGINE specifically, but across all JavaScript engines!

I’ll start by explaining how $JAVASCRIPT_ENGINE handles arrays behind the scenes, and especially how it can optimize operations on them. I can do all of this with my “JS developer” hat on, i.e. without showing a single line of C++. This knowledge leads to useful insights for JavaScript developers wishing to improve their code’s run-time performance. In the end, the audience will walk away with several practical performance tips, and a deeper understanding of what’s going on under the hood.

Alexander Pope

Alexander Pope

Oslo, Norway

Regardless of what Google might think, Alexander Pope does *not* write poetry; he mostly writes JavaScript and pushes pixels around. Originally of Canadian extraction, Alexander now works and lives in the wilds of Norway (Oslo).

OUTBREAK: index-sw-9a4c43b4b4778e7d1ca619eaaf5ac1db.js

August 30, 2016, was by all accounts an average Tuesday, and release number 523 just a simple re-factor, but something went horribly wrong that day: bad code escaped from the office, and it quickly spread to infect tens of thousands, giving rise to a hoard of zombie ServiceWorkers!

This is a disaster about a typo. This is a thriller about technology out of control. This is a tragedy about wasted CPU cycles. This is a cautionary tale about living in the age of ServiceWorker.

Madlaina Kalunder

Madlaina Kalunder

Zürich, Switzerland

Madlaina is a full stack developer and a 3d processes magician at Archilogic, making 3d content accessible for people working on the web. She graduated at the Zurich University of Arts with a bachelor degree in Design, specialization Game Design, combining the passion for design and story telling with the newest technologies. She believes in bringing people of different backgrounds together to solve problems in creative ways.

Building a raytracing engine with JS

In this talk we will build a 3D ray tracer with Javascript. We learn about the basics of real time 3D graphics and what we need in order to produce realistic looking 3D graphics in the browser.

It’s fun to learn about 3D and graphics, plus seeing how a seemingly complex concept such as ray tracing can be broken down to simpler concepts is inspiring. I enjoyed the artistic aspect of using maths to make 3D objects appear in a browser - and demystifying it in the process of learning. I hope to show and inspire the audience to experiment.

Irina Shestak

Irina Shestak

Berlin, Germany

The not so short: Irina is a Berlin via London via Vancouver (geeeez grrrl) software developer who is, oh hey, hello, really into node.js. When she is not in front of a computer, she is exploring the outdoors, gushing over trains, and you will probably find her at your nearest ramen shop™ reading some Beatniks.

HTTP2, one frame at a time

Node Files.
Take #1337.
~ * Action! * ~


The camera zooms in on an intense discussion between Scully and Mulder. Both are huddled around a terminal, both are uncertain about the next steps. Ghosts of old TCP connections wail in the background.
Scully is frantically typing. The left hand side shows a new session starting. Soon a new stream created. Multiple requests come in and Scully and Mulder frantically look at each other with a single face expression -- what. do. we. do. now? A minute passes. Scully looks like she has an idea.

~ * Scene * ~

In this fresh off the press episode of Node Files, I will take you to a set of Node.js' implementation of HTTP2. Its quirks, its benefits, and its workings explained and illustrated. How do we get from an established connection to TLS decryption? How does the concept of session come in to play? How does node handle memory usage when it comes to HTTP2? And what are these frame things everyone keeps talking about? This and more explained in HTTP2, one frame at a time. Coming to theatre near you from JSConf AU in March 2018.

Craig Spence

Craig Spence

Wellington, New Zealand

Craig lives in Wellington NZ, where he does JavaScript-y stuff at Trade Me. He loves building cool things that help teams build cool things! He also loves punk rock, Disney's Frozen, and his cat Cosy.

Fantastic ASTs and Where to Find Them

Oh no! Harry Potter, the hero from the J K Rowling’s wizarding universe, has been cursed by the super-villain, Lord Voldemort, and now he is trapped inside the Internet!

Harry knows Parseltongue, which means that he can talk to snakes. Incredibly, Parseltongue also happens to be a Turing complete programming language! In order for Harry to escape from the Internet, we need to transpile Parseltongue into JavaScript. In order to do that we need to learn all about Abstract Syntax Trees and how to use them to manipulate code.

This talk goes through the details of these magical data-structures, and all about language transformation, including lexing, parsing, code generation and creating source maps.By the end of the talk, attendants should have an idea of how ASTs work, how they are used in code transformation, and how they can be used to manipulate and interrogate code at a structural level.

Brittany Storoz

Brittany Storoz

Denver, United States

Brittany is a senior instructor and tech lead for the front-end program at Turing School. She's passionate about building a community that prioritizes making programming friendlier for new developers.

A Year of Other's Bugs: The Sad State of Error Handling

As an instructor of front-end software engineering, I’ve seen first-hand how difficult it is for new developers to navigate call stacks and decrypt error messages. We have built a culture that considers effective error handling a secondary priority, which has a significant impact on those who are just learning to code. Debugging is a huge part of the development process, and the less time we have to spend spinning our wheels, fighting an error message, the more time we have to get back to the fun stuff.

The more experience we have in engineering, the better we get at debugging broken code. We learn how to isolate the problem, decode cryptic error messages, and figure out the most effective terms to research. The faster we develop these skills, the faster we lose our perspective on what it’s like to be a beginner. It’s only when we watch others struggle through these experiences that it becomes obvious just how ineffective our error handling is. Let’s explore the shortcomings of the current state of error handling and how we can improve upon this to make engineering friendlier for newcomers.

This talk is applicable to developers of all skill-levels working with JavaScript. I hope to enlighten engineers on how to create more effective error handling for juniors, and also demonstrate how new developers are currently navigating the choppy waters we’ve presented them with when things go wrong.

Tim Holman

Tim Holman

Tim is a tinkerer, tuner & tamperer of all things online. He enjoys adding a lot of whimsy to the weird wide web, and prides himself with the overall joy it brings to the world.

Generative Art Speedrun

For so many of us, myself included, the art world is the entry point into the coding world. Here we will explore ins and outs of generative art, and experience the joy of creating art with code. Generative art can be as simple or complex as you like, at the end of the day, everyone will have the mindset and processes down to create their own unique pieces of joy.

This talk begins with the basics of generative art, a small history, including some of the earliest "code art", proceeding into examples through history leading us here. The goal of the "speed run" is to give the audience as much knowledge about generative art as possible in the given time, while also showing the tooling, and surprisingly few steps it takes to get creating unique and original art. Generally speaking, there is no limitation to the audience of this talk, it really sits on the borderlines of people who enjoy art, code and science, and everyone will take home a different piece of that puzzle.

The talk shows both the simplicity and beauty of generative art, with just a few lines of code, we can put the computer to work creating millions of unique pieces.

Malte Ubl

Malte Ubl

San Francisco, United States

Malte is the tech lead of the AMP Project for Google. Previously Malte has created JavaScript infrastructure for lots of Google web apps and he is a curator of JSConf EU.

Designing very large JavaScript applications

Over the last years a modular approach to programming in JS gained a huge following and with the advent of virtual DOM building isomorphic JavaScript application for the web became dramatically more approachable; yet, we are still largely deploying monolithic application blobs that know how to render the settings page of our single page apps before accepting user input on the homepage.

My talk will explore 2 primary themes:

  • How to build highly sophisticated web apps that load a constant amount of JS to make the first page the user sees interactive; where constant means, even if you have 100s of engineers write code for your app for a year, the size will still be the same.
  • How to throughout the lifecycle of your application never load a single line of JS that is not currently needed.
As part of this exploration I will introduce 3 novel concepts: lazy decoration, asynchronous dependency injection and reverse dependencies in module systems.

Come see my talk if you enjoy nerding out on over-engineering problems, or want to build the next YouTube or Twitter.

Caleb Sotelo

Caleb Sotelo

Pasadena, United States

Caleb is an Architect at OpenX, where he helps build digital advertising exchanges. He loves hiking the Sierra Nevada mountains and analyzing news articles at scale.

Taming the World’s Largest Trojan Horse

In 2017, companies globally spent $80B on digital advertising—web pages and mobile apps—delivering ads to billions of users, trillions of times. The majority of these ads were rendered in JavaScript environments. Technically, the challenge for JS developers is to instantaneously find the perfect match between an advertiser and a user, regardless of the website, app, or user profile. This is fun. But economically, we’ve been incentivized to create a global delivery mechanism for arbitrary code onto every connected device, without a care for user experience. It’s the world’s largest, and spammiest, Trojan Horse, and JS developers created it.

(1) Construction — What does this Trojan Horse look like at a technical level? This section covers JavaScript constructs that are really unique to ad-tech, including the rise and anatomy of the “ad tag”, creating sandboxes for arbitrary markup, cookie tracking and pixel syncing, and the impression beacon.

(2) Payload — What kinds of undesirable things are being delivered to publisher properties, and onto our devices? This section goes beyond specific examples of ad quality issues, sniffing, tracking, and malware, also looking at a longer-term invasion happening beneath our feet: have content creators begun trading clicks for a kind of dystopian digital future where ad blockers are simply common sense?

(3) Inversion — What can we as JS developers do about all this? This section argues that we have the power to change ad technology from a Trojan Horse into a powerful message delivery system, one that allows the coexistence of free content, advertising, and delightful user experiences. Ethical and optimistic developers will be the Trojan Horse inside the Trojan Horse.

Madalyn Parker

Madalyn Parker

Ann Arbor, United States

Madalyn has been writing code since 2007. Engineering at Olark since 2014. Working to cultivate humanity in tech. Outspoken about mental health in tech. Loves coffee, climbing, live music, and rabbits.

Uncharted Territory: Using aXe to Forge a Path

I remember attending my first JSConf in 2014 and watching Marcy Sutton talk about accessibility and the Shadow DOM. I was hooked on creating an accessible web for everyone. However, it's really hard to get accessibility prioritized when you're running as a lean startup.

Years later, my company is ready to hop on the train and now we're working to implement the first ever ADA compliant chat box used in a support and sales context. I've seen lots of talks on accessibility basics and implementing aria on static sites, but few that demonstrate what it's actually like to approach a codebase architected without accessibility in mind (especially one that will run on sites you have no control over) and add that layer in.

I'm working on this project now (with a due date of Dec 2017) so I don't have immediate outcomes to list here but I'll cover the problems I ran into and will hopefully be able to help other developers in similar situations with their code bases.

I want to show that it's okay to roll out accessibility changes bit by bit, that it doesn't have to be all or nothing, and that there are good tools out there to help you out. I think the stumbling blocks I come across (and overcome) in this project would be useful for others who find themselves in my position. Part of what made this project difficult was my inability to accurately estimate how long or how much work it would take to update our application. Hopefully, with the lessons I learn, I’ll be able to help someone else blaze their own trail at their company.

Vigneshwer Dhinakaran

Vigneshwer Dhinakaran

Bengaluru, India

Vigneshwer is an innovative data scientist from Bengaluru who crunches real-time data and builds AI algorithms for complex business problems. He believes that technology needs to have a human-centric design to cater solutions to a diverse audience. He’s an official Mozilla TechSpeaker and is the author of Rust Cookbook.

Pumping up Node.js modules with Rust

If you’ve spent much time writing and debugging node module code for performance in a Js app, you’ve probably had a hard time managing memory and native code integration.

In this talk, we venture deep into the belly of the Rust Language to uncover the secret incantations for building high performance and memory safe node modules using Neon, which helps you to write native node js modules and it is definitely gonna mesmerize you with its easy language bridge capabilities for building high performant and crash-free Js apps.

Rust is out there creating a new generation of system programmers, it has a lot to offer in terms of safety and performance for high-level programming languages such Python, Ruby, Js and more with its easy Foreign Function Interface capabilities which enables developers to easily develop bindings for foreign code.

Amy Nguyen

Amy Nguyen

San Francisco, United States

Amy is a software engineer on the Stripe Observability team and she wants to make data accessible for everyone. Outside of work, Amy writes about the tech industry, loves baking, and reads too many self-improvement books.

Using Chrome Developer Tools to Hack Your Way Into Concerts

Chrome Developer Tools is magical. It lets you record network traffic, step through code, modify the DOM, and more! To learn when we would use each of these features, I'll walk you through my adventures trying to trick Taylor Swift’s website into giving me concert tickets. Instead of reading through all of the JS files in her site and scrolling through hundreds of useless network activity logs, I learned how to use XHR breakpoints, filter network activity by type and domain, and recreate requests with CURL. I'll show you all of these tools and a few other tricks, and by the end of this talk, you will know how to reverse engineer any website and manipulate it to do your bidding.

Nikolai Matvienko

Nikolai Matvienko

Saint Petersburg, Russia

Nikolay is a full stack JS developer in the Grid Dynamics company. The last three years mainly works on a major e-commerce project in San Francisco, California, where in addition to development, the core responsibilities include: production troubleshooting, diagnostics, profiling, and optimization Node.js applications performance in production. Nikolay is addicted to attending meetups and conferences in “the Valley”.

Node.js applications diagnostics under the hood

Based on my experience in diagnosing and troubleshooting highload e-commerce Node.js app in production, I’ve identified three stages in the Node.js diagnostic history. I’d like to briefly tell this path and show where we are now and tell in details "How to debug and tracing Node.js apps on different levels, and how to track performance problems and memory leaks inside Node.js apps in 2018":

  • Production troubleshooting: I show and explain the strategy of creation and debugging core dump using llnode, node-report and X-Transaction-ID in our company with real-life examples.
  • Memory leaks: I show how to identify memory leaks, memory holders using V8 GC tracing, llnode debugging + gencore tool with real-life examples.
  • Performance: I show how to use 0x flame graph to find performance bottlenecks, how identify Event Loop lags, GC slow work and what can give Async Hooks for that with real-life examples.

Aboriginal FlagTorres Strait Islanders FlagLGBTQI FlagTransgender Pride Flag

We acknowledge the Wurundjeri people of the Kulin nations, the traditional owners of the land on which we gather. We pay our respects to their Elders: past, present and future.

We firmly believe in diversity, inclusion and equality.