Nodevember 2016 Highlights

Nodevember.js is a conference focused on Node.js and JavaScript held in Nashville, Tennessee, on the weekend before Thanksgiving. In 2016, there were more than 40 talks covering the broad and ever-changing space that is the JavaScript world.

There were a ton of amazing talks, too many to list here. Most of them are available to view on the Nodevember Youtube channel.

Jared and Steve attended on behalf of Earthling. Here are their favorite parts.

Jared C.

I had a great time at Nodevember this year. Lots of interesting talks, good people, and tasty food. I think I took away two major themes from the conference: finding motivation in an increasingly complex field, and a willingness to explore new technologies to solve problems old and new.

Aaron Larner, Trello
One of my favorite talks of the conference, Lessons learned prototyping a wearable for rock climbers with Node by former Earthling Larner taught me there is a fine balance between gaining knowledge and motivation to use that knowledge. Making sure to understand the “why” is just as important as the “what”.

Ryan Lanciaux, OpenGov
Maintaining an open-source project requires a lot of motivation, and the talk Personal Open Source in the age of JavaScript fatigue by Lanciaux discussed his experience finding that balance. He talked about making sure to dedicate time to work on these projects, but not letting it becoming overwhelming. His tips for doing this included having a clear mission for your project, marketing (yes really!), and being welcoming and respectful to the open-source community.

Alex Grigoryan, @WalmartLabs
This also applied in another talk I heard, How to Accelerate Digital Transformation: @WalmartLab’s Migrated to React and Nodejs in Less Than a Year by Grigoryan. In order to get buy-in to rewrite their site from every level of the company, the engineers at Walmart had to explain why it was important. They did this by starting with one small part of the site, tracking all the changes to prove the benefits the new technology provided. Once they did this the other teams had the motivation to rewrite everything else.

There were also some great talks about problem-solving with new technologies. A Real-World JavaScript IoT Solution by Garth Henson showed a really cool use of the Internet of Things to solve a simple problem that ended up having visible monetary benefits for his company. This Is NativeScript by Burke Holland and React Native for Fun and Profit by Dave Thompson made me super excited to try writing mobile apps with javascript. <textarea distributed> by Jason Orendorff reminded me that even problems that seem simple on the surface can be REALLY complicated.

Steve B.

Lee Byron, Facebook
Immutable App Architecture schematicByron, the author of immutable.js, spoke of how immutability could be combined with pure functions and unidirectional data flow to form an immutable application architecture. He covers how immutability enables the use of memorization, which can be a great performance booster. He also shows Facebook’s current thinking on architecture best practices using GraphQL to define models and then creating components that know how to render their model using pure React views. One of the coolest parts of the talk was how they’re leveraging immutability to queue up actions that make calls to the server, handle them immediately for best performance (creating an optimistic local state), and then reapply the action queue with the real data once the server call returns. Our friend Josh asked Lee about it afterward and it turns out there’s no library for this; they do it on a per-application basis. Note that there were technical difficulties on the video recording, so his slides don’t show up there. Here’s a video of the same talk with slides at a different conference.

CJ Silverio, NPM
In CJ Silverio’s keynote talk she spoke of the path she took to become the CTO of NPM and of the challenges she and her team overcame in scaling NPM so that it can handle hundreds of millions of npm install requests per day (296 million on Tuesday, Nov. 15th alone). The core message was to automate everything. Automate it so you don’t have to think about it and can focus your attention on solving the next problem. Automate the collection of metrics so you can monitor how well things are working and tune as needed. Continuing the theme of the benefits of immutability, she revealed that one of the ways they scaled the NPM registry to handle hundreds of millions of npm install requests was by getting the package data out of a database and serving it up as immutable files from the file system. She also spoke of the human side of engineering. Her job as CTO is to identify the right problem and hand it to the right person. The real challenge is keeping people in a place where they can do their best.

Preethi Kasireddy, Coinbase
Kasireddy gave a keynote on how to write more reasonable JavaScript by using functional programming techniques, static type checking, and immutability. This results in code that is easier to understand intent, easier to reuse, easier to maintain, easier to refactor, easier to test, and easier to reason about. Check out her talk for more. For more depth on functional programming in JavaScript, a great reference is the Mostly Adequate Guide to Functional Programming.

Cory House from Bitnative
House, in his talk on The JavaScript Starter Kit Manifesto, made the point that the technology field is moving so quickly and there are too many choices for anyone to keep track of. It puts a massive cognitive load on engineers. When setting up a new JavaScript project, there are more than 40 technology choices that you need to make. Which editor? How to automate the build? Which transpiler to use? Which unit test framework? And the list goes on. Opinionated frameworks like Ember make a lot of these choices for you but if you’re using React, you need to make every choice. And since the JavaScript landscape is moving so quickly, how do you know the best one to pick? His recommendation is that your organization needs a starter kit, either pick an existing or build yours from scratch. It’s a living checklist which codifies decisions, best practices, and lessons learned and encourages consistency. It makes it easier for engineers to switch projects, too.

Ryan Tablada, The Iron Yard
As a counterpoint to Cory’s talk, Tablada gave a talk about the “12 Reasons I Still Choose Ember.js”. I had tried Ember a couple of years ago and wasn’t a fan because the framework too immature but Ryan made a strong enough case for the benefits of Ember that I’m inspired to give it another chance. It is strongly opinionated which allows them to include many powerful features out-of-the-box. His slides are here.

Guillermo Rauch, Zeit
Rauch, the creator of mongoid and, gave a keynote about Now and Next, two products being developed by his company. Continuing the theme of automating everything, Zeit’s goal is to make it so developers don’t have to think about the plumbing so they can focus on delivering functionality to customers. The Now tool they’ve developed enables any project with a package.json or a Dockerfile to be deployed to their cloud with a single command. Their next product is an open-source React-based framework that provides complex functionality like routing, code splitting, and server-side rendering with no additional setup. Even though the technologies and his company are young, it felt like he was showing us a vision of a better future.

Jared Michael Smith, Oak Ridge National Lab
Michael Smith from the Cyber Warfare Research Team spoke about JavaScript Security and What You Need to Know to Write Secure Applications in JS. Security breaches cost big money and they happen all the time. If you don’t make security a priority and you have data that’s valuable, you will get hacked. He covered a series of recommendations and tools for improving the security of your JavaScript application. Here are his slides. Every developer should look through them and do some of the basic checks on their application.

Aria Stewart, NPM
Stewart showed a montage of video interviews with software developers from many different backgrounds on how they got into the field and what motivates them. One of the key messages in her talk was that talented engineers come from many backgrounds, races, and genders and it’s important for people to feel welcomed and included in the company culture and by the greater community. Supporting a diverse and healthy tech community is everyone’s responsibility. The video for her talk hasn’t been posted yet, but here are some resources for supporting diversity in tech.

All in all, it was a great conference and we’re looking forward to next year. Thank you to Earthling for sending us!