NationJS 2017 Program

Nov 30 - Kickoff

Time Talk/Event
6:30 PM NationJS Kickoff — DCJS/NodeDC

Dec 1 - Conference Day

Time Talk/Event
8:00 – 9:00 Registration and Breakfast
9:00 – 9:30 Kung Fu Moves for the Front-End Hero by Ariya Hidayat
9:35 – 10:00 The Variable Crimes We Commit Against JavaScript by Julka Grodel
10:00 – 10:25 Break (25 mins)
10:25 – 10:50 Building a Chat Bot with by Erin Page
10:55 – 11:20 I Didn't Know the Browser Could Do That! by Sam Bellen
11:20 – 11:45 Break (25 mins)
11:45 – 12:10 Building microservices in NodeJS by Justin Bachorik
12:15 – 12:40 Vue.js in Practice: Hybridizing Objects and Functions by Betsy Haibel
12:40 – 2:10 Lunch (90 mins)
2:15 – 2:40 Gun.js: A Real-time Graph Database in Plain JS by Spencer Jones
2:40 – 3:00 Break (20 mins)
3:05 – 3:30 Front End Resilience by Ian Feather
3:30 – 3:55 Logging Off: Improving Low-Connectivity Experiences on the Web by Valerie Woolard Srinivasan
3:55 – 4:25 Break (30 mins)
4:30 – 4:55 JavaScript: What's sticking around? by John K Paul
4:55 – 5:20 The Browser and the Brain by Jenna Zeigen
6:00 After Party

Ariya Hidayat

Ariya Hidayat created PhantomJS, the industry’s most popular headless browser. He is also the creator of Esprima, a parser serving as the basis of modern JavaScript language tooling. These days, he focuses mostly on software craftsmanship with HTML5, JavaScript, and other web technologies.

Ariya is currently running the VP of Engineering at Shape Security. Previously he built leading mobile and web technologies at Sencha, Qualcomm, and Nokia.

Kung Fu Moves for the Front-End Hero

After you built an awesome app using React and integrated its Mocha tests with Jenkins, what should you do next? To reach the highest app quality and to move yourself to the next level, there is a few more skills you need to master: leverage Git hooks, manage code complexity, monitor code coverage, run smoke tests with evergreen browsers, and track the downstream projects.

Jenna Zeigen

One morning, Jenna awoke to find that she had transformed into a programmer. She’s been psyched about coding ever since. When she’s not teaching pixels to party or helping keep engineers happy, Jenna enjoys climbing, coffee, and cat gifs. Her best party trick is that she wrote the most serious academic paper of her life on puns.

The Browser and the Brain

Computers and brains are often used as metaphors for one another, but how does a web browser compare to the human brain? We’ll compare elements of browsers, such as parsers and interpreters, the event loop, and rendering, with aspects of cognition, like language processing, attention, and vision.

Sam Bellen

Sam Bellen is a front-end developer at madewithlove, a small app development company based in Belgium, but with employees all over the world. Before joining madewithlove, I worked for one of Belgium’s biggest digital agencies where I helped creating anything from campaign websites to a new trading platform for Belgium’s biggest online stock broker.

For my day to day job I’m in charge of creating challenging user interfaces and make applications nice to work with. After office hours I like to play around with the web-audio API, and other “exotic” browser API’s. One of my side projects is a library to add audio effects to an audio input using JavaScript.

When I’m not behind a computer, you can find playing the guitar, having a beer at a concert, or trying to snap the next perfect picture.

I Didn’t Know the Browser Could Do That!

Everyday, you’re working with a web-browser, but do you know all of it’s capabilities? These wonderful pieces of software are much more powerful than they appear. This talk will take you through some of the lesser know but definitely double as cool browser api’s.

Julka Grodel

Julka Grodel is a Principal Software Engineer at Framebridge, a DC startup disrupting the custom framing market. She is passionate about writing easily maintainable and extendable code and has worked professionally in web development for over a decade. When not working on code empowering Framebridge customers to frame everything they love, she spends her time volunteering on literacy projects with the Junior League, in a pilates studio, or doting over her blind cat Batman and his BFF Robin.

The Variable Crimes We Commit Against JavaScript

Have you ever put a value into a JavaScript variable, and then been unable to use it where you needed it? Or created it and unintentionally overridden something you thought wouldn't be effected? JavaScript has an unusual way of handling where variables are available, we call this "where" a scope. In this talk, we'll go over how JavaScript variables 'bubble' up into higher scopes, how to restrict them to just where you want them, and how this effects variables in your functions.

Scopes in JavaScript are a misunderstood aspect by many developers and can create frustration when troubleshooting code. This talk doesn't require any knowledge of JavaScript specifically, but a proficiency in some programming language is helpful.

Ian Feather

I’m a Front End Developer form London working for a New York based media company. I have a bunch of experience working with media and publishing companies and building out large scale websites. I’ve been involved with quite a few different sides of the industry, from large progressively enhanced text based sites to universal react SPAs. This gives me a decent perspective on how to approach a problem.

My interests in front end these days are more towards the Front End Ops side of things. At my current role I lead the infrastructure team and work on building tooling to help developers focus directly on the user features.

Front End Resilience

When building sites at BuzzFeed, our priority is always to create resilient front ends which are tolerant to failure of different kinds. We value an experience which is available no matter what device, browser or network connection the user is browsing with.

Accomplishing this isn’t easy but we’ve learnt a few tricks along the way which we would love to share! I’ll explain the principles behind our approach as well as detailing some of the solutions we have put in place: covering areas of automation, instrumentation and continuous testing in production.

Valerie Woolard Srinivasan

Valerie Woolard Srinivasan is a software engineer at Panoply, where she build tools for podcasters in Ruby on Rails, and a lead for Women Who Code DC. She is always happy to exchange podcast recommendations, vegetarian recipes, and running routes. She lives in DC with her husband, who is also her best editor and advocate.

Logging Off: Improving Low-Connectivity Experiences on the Web

We'll discuss why it's important to optimize our web sites and applications for people with bandwidth or connectivity constraints. This is crucial both for users of mobile devices and for users with unreliable internet connections due to geographic factors. I'll outline some of the principles of offline-first development and the tools that are available to help developers build a good offline experience. I'll also go through some of the web design guidelines for low bandwidth and share pointers for making sites friendlier to users with limited bandwidth, such as clearly signaling large downloads, scaling down images, and limiting the size of pages.

Attendees should have some familiarity with making web pages and will leave with many useful tools for improving experience for users with connectivity constraints.

John K Paul

John K Paul is a Principal Architect at Condé Nast, an instructor at and an organizer of the NYCHTML5 meetup. He is a also contributor to a few open source projects including requireify, jquery-ajax-retry and one single commit into jQuery.

JavaScript: What's sticking around?

A new framework, library or hammer-looking-for-nail comes out every 24 hours. Most talks consider if you should be swiping left or swiping right, but I want to talk to you about what will matter regardless of your specific technology choices.

In this sea of the bleeding edge, there are islands of stability. There are core ideas, debugging techniques, software design tenants, classic study skills and human fundamentals that won’t change with or without React 17 dropping like it’s hot. Debugging and coping with the subsequent frustration, for example, will last you the rest of your career.

We will walk through examples of steadfast techniques and tools for how you can build better software, most notably JavaScript applications on the server or the client. I expect everyone to walk away with a calm serene feeling of contentment, regardless of what legacy system they have to maintain or “better" technology decision they weren’t able to make.

Erin Page

Erin Page is a US Army Veteran, mom to two brilliant teenage boys, and Web Application Developer at Beachy. She helps organize Nashville's Ruby User Group, Nodevember, Nashville's local JS conference, and BarCamp Nashville. Erin is a go-go-go kind of person: go getter, go-to, go team!! When she is not mentoring or hacking, she can be found transporting teenagers around Nashville.

Building a Chat Bot with

A "new" way of communicating with your computer/devices is on the rise: VOICE. How do we make a program understand our determinations with words? Enter, a platform for mapping intents. Attendees will git a quick rundown of and see it used in a live chatbot. A more complicated chatbot made with Ruby will be demonstrated to show the some of the more advanced usages of There are a lot of tools out in the market that attempting to resolve similar issues as Let's start learning about these new class of tools. Limitations and alternatives to will be discussed.

Spencer Jones

Spencer Jones is a humanities major turned software developer via free tutorials, Stack Overflow, sweat, and occasional tears.

He believes everyone should have access to high-quality and reliable information. He believes in Open Source, and in creating and distributing high-quality information and code for free.

By day, he contributes to enterprise systems and by night, contributes to Open Source. One day, he hope that his day job will be building Open Source systems. Currently, he works at a great software consulting firm, Solution Street, in Herndon, VA.

Stuff he cares about: clean, documented code; testable and tested code; teamwork; Greek; coffee; cycling.

Gun.js: A Real-time Graph Database in Plain JS

Query data from client-side JS? Easy.

Real-time updates across a distributed system? A cinch.

Apps must be fast, highly-available, and run on any device. This talk will demonstrate how a resilient, distributed network can be easily created with Gun while solving common challenges like offline usability, real-time updates, and data replication. All this without needing anything but JavaScript!

Betsy Haibel

Betsy Haibel is the founding CTO of Cohere. She writes fiction and nonfiction in English, Ruby, and Javascript – among other languages – and co-organizes Learn Ruby in DC. Her lifelong ambitions? To meet a red panda, and to break down barriers between "developers" and "users."

Vue.js in Practice: Hybridizing Objects and Functions

Vue.js isn't the new kid on the block any more. It's something we write for actual money nowadays. We also read and extend other people's Vue code for actual money. It's time to start looking at what design patterns are useful in large-scale Vue apps, to help keep the framework elegant and comprehensible as complexity grows. Luckily, the framework itself can be our inspiration. Part of Vue's "secret sauce" is its elegant blend of functional and object-oriented programming paradigms: instead of demanding purity in one or the other, it hybridizes them to create an easy-to-use developer experience.

In this talk, we'll look at methods both functional (partial application) and object-oriented (unmounted data-store components) and figure out when it's best to use which strategy – as well as when and how to blend them. You'll learn common gotchas, as well! Whether you use Vue or React or even Ember day-to-day, you'll come away with a better understanding of reactivity's blessings and pitfalls in larger applications.

Justin Bachorik

Justin Bachorik is a master software engineer at Capital One, where he builds API platforms and microservices using Node.js and other technologies. Prior to joining Capital One, Justin worked at National Public Radio as the lead developer for Justin loves coding, cooking, and playing piano, and gets overly excited about designing clean abstractions.

Microservices in Node.js: Practices, Pitfalls, and Prevention

Microservice architecture is growing in popularity at a rapid pace — and for good reason. When implemented correctly, the use of microservices can confer huge technological and organizational advantages. All too often, though, microservices are sold as a panacea that will solve whatever problems your team might have, and due consideration is not given to the tradeoffs involved in adopting a microservice-oriented approach. In this talk, Justin Bachorik will provide an introduction to the advantages and potential drawbacks of microservice architecture and will present a number of Node.js-oriented solutions for avoiding common issues.