February 16 - 18, 2021
Node Congress
Online

Node Congress 2021

The biggest event on JavaScript backends

Explore the new frontier of battle-tested backends. A two-day conference on all things Node.js, gathering Back-end and Full-stack engineers across the globe in the cloud is here to help you staying up-to-date on the latest Node.js tech.

Machine Learning in Node.js using Tensorflow.js
8 min
Machine Learning in Node.js using Tensorflow.js
Write and deploy machine learning models easily in Nodejs using Tensorflow.js.
Logging, Metrics, and Tracing with Nodejs
31 min
Logging, Metrics, and Tracing with Nodejs
Logging, Metrics, and Distributed Tracing are three vital tools for observing Node.js services. In this talk we’ll consider the different scenarios in which each tool thrives, look at dashboards and visualizations, and even examine the code required to instrument these tools in a Node.js service.
Instrumenting Node.js Internals
7 min
Instrumenting Node.js Internals
When troubleshooting complex Node.js applications recollecting information about the network, filesystem or external dependencies is always useful. Even when working with a new codebase insights on how the application is built, which asynchronous calls are being used or how often. In this talk I want to introduce "instrument", a tool I've created for this which is also Open Source.
Can You Change the Behavior of a Running Node.js Process From the Outside?
30 min
Can You Change the Behavior of a Running Node.js Process From the Outside?
In this talk, we will have fun trying to tamper with a running Node.js process to change its behavior at runtime. Without changing the code or restarting the process, we will find a way to inject our own logic into it and start to do the things we want. What are the limitations of such an approach? Is there part of it that can be used in real life scenarios? Come and find out! Yes, there will be some live demo.
Infrastructure as Code with a Node Focus
36 min
Infrastructure as Code with a Node Focus
This talk explores the power of tech infrastructure as code, allowing organizations to quickly, reliably and reproducibly build up, scale, and tear down real-world infrastructure as needed — with a focus on NodeJS stacks.
Examining Observability in Node.js
22 min
Examining Observability in Node.js
Imagine your productivity and confidence developing web apps without chrome dev tools. Many do exactly that with Node.js.It is important to observe and learn what’s happening in your app to stay competitive and create the most performant and efficient Node.js applications, following the best practices.In this talk, we will explore useful tools to examine your Node.js applications and how observability will speed up development, produce better code while improving reliability and uptime. Don’t miss it!
How We Created the Giraffe Libraries for Time Series Data
7 min
How We Created the Giraffe Libraries for Time Series Data
In this talk, Zoe Steinkamp will talk about Giraffe, an open source visualization library that powers data visualizations in the InfluxDB 2.0 UI. Giraffe can be used to display your data within your own app and is Fluxlang-supported! It uses algorithms to handle visualizing high volumes of time series data that InfluxDB can ingest and query.
Comprehensive Observability via Distributed Tracing on Node.js8
8 min
Comprehensive Observability via Distributed Tracing on Node.js8
The benefits of Node.js to develop real-time applications at scale are very well known. As Node.js architectures get more and more complex, visualization of your microservice-based architecture is crucial. However, the visualization of microservices is incredibly complex given the scale and the transactions across them. You not only need to visualize your Node.js applications but also analyze the health, flow, and performance of applications to have a complete observability solution. In this talk, we'll go over the challenges of scaling your Node.js applications and tools (such as distributed tracing) available to you to scale with confidence.
The Security Toolbox For Node
29 min
The Security Toolbox For Node
Do you have a way to quickly check all of your repos for any vulnerabilities to various attacks? Do you know which attacks you should be preparing your applications for? In this talk, we will cover the top 10 attacks on Node applications and how to handle all of them. Multiple tools will be covered, all of which have been used in production across different back-end architectures.A few of the areas that will be covered include securing dependencies, securing data, and securing your server. By the end of this talk, attendees should have a full security toolbox and they will know how to implement it quickly. This will help with production applications because you will still get through your sprints on time and you will be able to rest knowing you have security measures in place.
Can We Double HTTP Client Throughput?
20 min
Can We Double HTTP Client Throughput?
The Node.js HTTP client is a fundamental part of any application, yet many think it cannot be improved. I took this as a challenge and I’m now ready to present a new HTTP client for Node.js, undici, that doubles the throughput of your application The story behind this improvement begins with the birth of TCP/IP and it is rooted in one of the fundamental limitations of networking: head-of-line blocking (HOL blocking). HOL blocking is one of those topics that developers blissfully ignore and yet it deeply impacts the runtime experience of the distributed applications that they build every day. Undici is a HTTP/1.1 client that avoids HOL blocking using keep-alive and pipelining, resulting in a doubling of your application throughput.
The Micro-Frontend Revolution at Amex
28 min
The Micro-Frontend Revolution at Amex
How do you scale a web application to be developed thousands of engineers and upgrade it to use the latest Javascript technologies (Nodejs + React)? The answer is, using Micro-Frontends!American Express is a pioneer in the usage of this architecture using it in production since 2016 and transforming the face of a website used millions of users worldwide.
Demystifying Memory Leaks in JavaScript
33 min
Demystifying Memory Leaks in JavaScript
Today it is possible to write complex applications with only a handful of developers in a short time frame relying upon Frameworks and tooling. But what happens when the application crashes with out of memory errors? How is it possible to guarantee fast response times? These problems are still considered difficult to solve.Let's dive into the Node.js internals and learn about profilers and the garbage collector. Understanding how the system works in depth let's you write code that is safer, faster and less error prone.Let's make sure you always provide the best experience for everyone. Yourself and your customer. Let us find that memory leak and fix it.Learnings        Participants understand the Node.js memory handling and their shortcomings.        Participants know when to profile their application to identify memory leaks and slow code.        Participants are able to find and address most memory leaks.
Safely Handling Dynamic Data with TypeScript
29 min
Safely Handling Dynamic Data with TypeScript
TypeScript makes JavaScript safer adding static type definitions. Static definitions are wonderful; they prevent developers from making trivial mistakes ensuring every assignment and invocation is done correctly. A variable typed as a string cannot be assigned a number, and a function expecting three arguments cannot be called with only two. These definitions only exist at build time though; the code that is eventually executed is just JavaScript. But what about the response from an API request? In this talk Ethan Arrowood, Software Engineer 2 @ Microsoft, he will cover various solutions for safely typing dynamic data in TypeScript applications. This talk features popular technologies such as Fastify, JSON Schema, Node.js, and more!
Node.js: the New and the Experimental
31 min
Node.js: the New and the Experimental
Node.js core does not have an official roadmap - it’s the sum of the interests and efforts of the contributors that determines the future direction of the project. The evolution of a new feature in Node.js can take different twists and turns. Some new features land as experimental, to give time to gather user feedback before they’re considered stable. Other features will land as stable from the start. So, what’s in the pipeline? This talk will take a look at some of the new and experimental features in Node.js core.
Push Notifications: Can’t Live With Em, Can’t Live Without Em
9 min
Push Notifications: Can’t Live With Em, Can’t Live Without Em
Consider how many notifications you get per day... and now consider the millions of other people who are also receiving notifications. 16 million notifications a day that have places to be and people to see, in a race against time, load, and latency.So what happens behind the scenes to ensure that all those notifications get where they need to go, and quickly? A combination of auto-scaling, rabbitMQ, scrupulous monitoring, and a tireless dev team. In this talk I’ll discuss the functionality of the message bus at the core of Vonage’s communications platform, the powerful Node scripts that power the entire operation, and how you can use similar solutions for a number of different challenges.
Nodejs Runtime Performance Tips
9 min
Nodejs Runtime Performance Tips
Nodejs runs big systems today. Sometimes, you can improve user experience and save on cloud expanses optimizing your nodejs scripts. In this talk I will share tips from production on how to improve nodejs runtime performance.
Introduction to the AWS CDK: Infrastructure as Node
34 min
Introduction to the AWS CDK: Infrastructure as Node
For years AWS has offered CloudFormation as an approach to Infrastructure as Code (IaC). CloudFormation allows application stacks to be provisioned from JSON or YAML formatted templates. Unfortunately, due to their size and complexity, CloudFormation templates have earned a reputation as being unwieldy to work with.The AWS Cloud Development Kit (CDK) mitigates some of the complexity associated with CloudFormation allowing developers to programmatically define their cloud architecture using familiar high-level languages such as JavaScript and TypeScript. CDK projects can then be deployed via CloudFormation, while retaining all of the benefits of CloudFormation, such as repeatable deployments and drift detection. This talk will introduce the CDK in the context of Node.js and demonstrate how it can be leveraged to provision cloud native architectures.
Don’t Try This at Home: Synchronous I/O in Node.js
32 min
Don’t Try This at Home: Synchronous I/O in Node.js
Node.js is famously a JavaScript runtime that encourages using asynchronous operations wherever possible – but what happens when you really, really need to do synchronous I/O? Anna gives an overview over the – surprisingly many – different ways to achieve this, and what we can learn about how the language and Node.js internals work from them.
Introduction to the AWS CDK: Infrastructure as Node
34 min
Introduction to the AWS CDK: Infrastructure as Node
For years AWS has offered CloudFormation as an approach to Infrastructure as Code (IaC). CloudFormation allows application stacks to be provisioned from JSON or YAML formatted templates. Unfortunately, due to their size and complexity, CloudFormation templates have earned a reputation as being unwieldy to work with. The AWS Cloud Development Kid (CDK) mitigates some of the complexity associated with CloudFormation allowing developers to programmatically define their cloud architecture using familiar high-level languages such as JavaScript and TypeScript. CDK projects can then be deployed via CloudFormation, while retaining all of the benefits of CloudFormation, such as repeatable deployments and drift detection.
This talk will introduce the CDK in the context of Node.js and demonstrate how it can be leveraged to provision cloud native architectures.
Using Feature Flags to Enable Testing in Production
29 min
Using Feature Flags to Enable Testing in Production
How do you know your feature is working perfectly in production? If something breaks in production, how will you know? Will you wait for a user to report it to you? What do you do when your staging test results do not reflect current production behavior? In order to test proactively as opposed to reactively, try testing in production! You will have an increased accuracy of test results, your tests will run faster due to the elimination of bad data, and you will have higher confidence before releases. This can be accomplished through feature flagging, canary releases, setting up a proper CI/CD pipeline, and data cleanup. You will leave this talk with strategies to mitigate risk, to better your understanding of the steps to get there, and to shift your company’s testing culture, so you can provide the best possible experience to your users. At the end of the day, we don't care if your features work in staging, we care if they work in production.