2017 UtahJS Conference

Monday, September 18, 2017
Jordan Commons Event Center

Emily Freeman

The Dr. Seuss Guide to Code Craftsmanship

Dr. Seuss had it all figured out. He would have made an excellent engineer.

This talk will focus on common pitfalls along the development lifecycle and distill Dr. Seuss's excellent advice into concise steps developers can take before they write a single line of code.

Kristie Giles

The Death of Icon Fonts: Component-Based SVG Icon Systems

Icon fonts were convenient, but there are better alternatives in 2017 – especially if you're using modern build tools and component-based architecture. Learn how to build more robust, accessible icon systems using SVG, CSS, and React or Angular components.

Evan Farrer

If I unit test do I really need static typing?

There is a debate in the JS community about whether we need static typing or whether unit testing is sufficient. We’ve tried to resolve this argument with anecdotes, Medium posts, and sarcasm. There is a better way. Come learn what science has to say about dynamic vs. static typing.

Ryan Moore

Catching Cute Monsters with Immutable Patterns from Functional Programming

Functional Programming and Immutable Data Structures can be a challenging subject. This talk makes it fun and approachable by demonstrating collecting, training and dueling cute pocket sized monsters with side by side procedural, object oriented and functional programming techniques.

Michele Campbell

How to defuse a bomb… Wait, I mean a bug

Have you ever felt the pressure getting a story tested in a short deadline? It may even feel like you are trying to defuse a bomb. This talk will walk through useful processes like pair testing, bug scrubs, and daily backlog triage to let you test faster and get a better product to your users.

Emily Freeman

The Dr. Seuss Guide to Code Craftsmanship

Dr. Seuss had it all figured out. He would have made an excellent engineer.

This talk will focus on common pitfalls along the development lifecycle and distill Dr. Seuss's excellent advice into concise steps developers can take before they write a single line of code.

Dan Crews

GraphQL and Microservices or: How I learned to be big and small at the same time

You've played with GraphQL -- maybe only read about it -- and you've tried to get through the docs. You've got questions:

How is this better than microservices? IS it? Does it require a monolith? What does a production GraphQL system really look like? What are some best practices?

Let's talk.

Peter Aitken

How can our language and behaviour be more inclusive?

Our words and actions can have a deep and profound effect on people in the community and within our teams.

In this talk we will cover scenarios which put attendees in the shoes of those who receive unwanted and inappropriate language and/or behaviour.

Today, what can we do to be more inclusive?

Walter Scott

PWA Every Day: Progressive Web Apps vs Native Apps

In this talk, I will discuss the state of native mobile apps, why people write them, and why some of us would prefer to avoid them where possible. We'll go over some of the main features that might drive you to write a native app, what alternatives are available, and where browser support is for each. Where possible I'll demo each of the features so we can get a good sense for any tradeoffs we'll be making in the process.

Ryan Walsh

UI and Unit Testing with Airbnb's Enzyme

An introduction to testing React components using Enzyme and chai-enzyme. Topics I'm planning on covering include assertions with chai-enzyme, when to use shallow/mount/render functions, selecting elements, simulating events, accessing instance methods, and accessing and manipulating props/state.

Valeri Karpov

The 80/20 Guide to Async/Await

Async/await is now formally a part of the language, so it's time to help people master it. Without understanding promises and fundamentals you can easily shoot yourself in the foot. In this talk I'll cover the basics of async/await for beginners.

Cory Christensen

Fundamentals of Data Visualization

How you represent data matters - color, size, and even chart types can influence the way users see your data. This talk is designed to go over some basic data visualization fundamentals represent your data in an unbiased, accurate, and informative way.

Ryan Lewis

No-Side JavaScript and the Serverless Revolution

The battle royale between client-side vs. server-side JavaScript has a new challenger: no-side JavaScript! With the proliferation of JavaScript on Serverless architectures, a new type of cloud-based JavaScript application has emerged that follows unique patterns from classic server-side JavaScript.

Jen Luker

Styling React for Reuse

The front-end programming sphere has exploded in recent years. Between state-based components, class naming conventions, and the inline versus stylesheet wars, it's difficult to wrap your head around your own components, let alone releasing them for reuse.

My goal is to take all that information and distill it down into an easy to digest discussion for those who are looking to standardize their own components, or release their first components for public use. My goal is to help the community, at large, think about css in their OSS components in an extensible way, without sacrificing their favorite css approach.

Steven Foote

Dumber Components, Smarter Development

As UI developers, we plant weeds, then we're surprised when our web apps are full of dandelions. Building buggy UIs is too easy, and building robust UIs is nearly impossible. We all aspire to it, but the system is working against us. Using "dumb" components makes the system work for us instead.

Tyler Garlick

There and back again.... Understanding Async/Await

This talk is about demystifying and understanding the new async/await pattern--its relationship with Promises, and best practices.

Shridharan Chandramouli

Using Angular 2 components in a Non-Angular app

Migrating a large and complex JS application over to Angular can be a time consuming and daunting task. In this talk, we will walk through how we did a piecemeal migration of our Lucidpress app over to Ng without a complete rewrite of the app, by dynamically loading Angular components in a JS app.

Kevin J Reece

Applying Code Standards Retroactively

One of the golden standards of programming is consistent code based on widely accepted standards. This session will cover the why and how of applying code standards retroactively across an existing code base and how to avoid needing to do it.

Ryan Hightower

The Vue from up Here. Scaling with a Progressive JS Framework.

Vue is a true progressive framework. Its unobtrusive API makes it a perfect drop-in replacement for jQuery, yet it scales without compromise to a full SPA with advanced routing, Flux-style state management, and even server side rendering. Vue gives you what you need and gets out of the way.

Seth House

Cool RxJS Tricks

RxJS is fast gaining popularity in the JavaScript world and there are a lot of good introductions. This talk will skip all that and jump straight into compelling, real, working demonstrations: complex XHR coordination and progress tracking, pollers with backoff, Flux, state management, and more.

Charlotte Chang

Climbing Rocks and Coding Blocks

Have you ever been stuck between a rock and a code place? Learning to code can feel as challenging as defying gravity! Sometimes the problem that needs solving just needs a little real-world abstraction. Come hear stories of my battles with coding and how rock climbing taught me dev best practices.

Ethan Garofolo

Validation in an eventually-consistent world

Making sure things are valid in a synchronous world, where we can expect data to be available right now is already challenging. Now let's toss into that asynchronicity, whether it's because of JavaScript or microservices. How do we deal with that and make sure systems do the right thing.

Katie Kurkoski

0 to Nodebots in 45 Minutes

You can write JavaScript, but what you really want to do is build your own robot army. Before you even know what kind of robots you want to build, this talk will jump start your experiments with JavaScript-driven hardware by showing you how to jump right through the standard Arduino installation and set up, and then working with Node and Johnny-Five. And of course, a few hardware demos.

This educational talk will provide a baseline overview of electronic circuitry and a fly-over look at standard Arduino configuration and programming. I'll then cover prerequisite installs such as Node.js, npm, git and Johnny-Five and what advantages they bring to the robotics party.

Then I'll move on to the fun stuff - hardware. Starting with the hardware version of "hello world", I'll demonstrate a blinking LED and changing the blink rate. I'll then demo more hardware driven with JavaScript - an array of LEDs and a servo motor. I'll conclude with a survey of connected-hardware projects and existing bot build recipes.

After this 45 minute talk, any developer interested in hardware will have the basic knowledge to get started with JavaScript-driven hardware.

Bret Little

Maneuvering Errors within the Bowels of JavaScript

Abnormalities in the way JS handles asynchronous behavior can cause you to experience greater than normal discomfort when propagating your errors. Though JS error handling is chronic, with symptoms that usually recur, in this talk we’ll discuss the symptoms and common triggers of the condition.

Jonathan Mills

A Skeptics guide to functional style javascript

Modern JavaScript seems to be split between the object oriented devs of Angular and the more functional style devs of the redux world. Many OO devs struggle with seeing the value in the functional style and all of the paradigms that go with it. This talk will work to explain those paradigms.

Tim Caswell

10 Weird Applications of Public Key Cryptography

Have you ever wondered about RSA keypairs, web certificates, JSON Web Tokens? How about those new-fangled Ed25519 keys ?

This talk will visually explain the core concepts behind all this tech and then gives 10 concrete use cases for using it in JavaScript servers and applications.

Ben Dilts

Plugging memory leaks with the Chrome Dev Tools

Garbage collection does not protect you from memory leaks. The Chrome Dev Tools have introduced a number of tools to help developers improve their apps' memory usage. Come learn how to find memory leaks, reduce time spent in garbage collection, and reduce overall memory usage in your apps.

Brian Barrow

Flexbox & Grid: How to style with style

Trevor Norris

The Birth and Evolution of AsyncHooks
Node v8.0 comes with the new native module “async_hooks”, but the development for this new feature did not start recently. The first commit landed back in September 2013, and between then and today the API has been removed, reintroduced and everything in between. The road was long and winding but async_hooks is finally available as a public API. I’ll give an overview of async_hooks development and reasoning behind the API’s design.

Dave Smith

Master of Ceremonies

UtahJS Organizers

The conference is brought to you by Zero Slope Events and several volunteers: