Node.js has grown at such an incredible rate that the reference materials have struggled to keep up at times. Now Node developers finally have a complete source for learning to build robust applications, thanks to Lob Staff Engineer, Thomas Hunter II.
Hunter’s new book, Distributed Systems with Node.js: Building Enterprise-Ready Backend Services is a hands-on guide to help intermediate and advanced developers build their skills, and learn to harness the incredible capabilities of Node.js in a production environment. He wrote most of it while employed at Lob, an ode to their excellent work-life balance.
The book is an indispensable tool for intermediate and advanced developers looking to build the backend skills they need to run Node.js in an enterprise production environment. Developers will learn everything they need to know to build, deploy and scale robust applications, integrate and communicate with other services, monitor application health and above all, ensure reliability in the apps they build.
While there are plenty of resources for frontend Node developers, the book has filled a much needed gap in backend instruction, earning praise from developers, execs and entrepreneurs.
Mixmax CTO Brad Vogel has called the book, “The missing manual for scaling Node applications,” and made it required reading for engineers at the company.
It’s also an important milestone in the rapid growth of Node.js from an innovative environment for startups into a crucial, enterprise grade tool.
From it’s creation by Ryan Dahl in 2009, Node.js has driven innovation, with features and paradigms absent from industry mainstays like PHP. Node quickly solved the C10k problem — the challenge of optimizing a server to concurrently handle 10,000 connections — a significant challenge for developers at the time.
Innovative charactics like its event loop design pattern and asynchronous operations quickly began to shake things up, from the startup world to some of the world’s biggest digital enterprises. LinkedIn launched an overhauled mobile app that works with an API written on Node,js in 2011, just two years after the initial release. In the years since, it has been harnessed for the ecommerce backends of eBay and AliExpress, and helped power many of the world's busiest websites like Netflix, Groupon and PayPal.
While originally designed with the needs of servers in mind, Node.js has also found a home on the desktop, powering Microsoft Visual Studio Code, NVIDIA drivers, and many other important applications.
As an early adopter, Hunter grew alongside the platform, garnering knowledge and experience that the next generation of Node.js developers will find invaluable.
While many tech leaders use Node to power their servers, Hunter points out that its most enthusiastic adopters have been small, agile companies. Many large enterprises already have substantial resources invested in more traditional programming paradigms and are committed to them, as Hunter has experienced first-hand.
Before he came to Lob, Hunter worked for a startup that built a security tool for Node.js-based applications. However, when it was acquired by a major company that was committed to Java, he felt less than enthusiastic about the slow, plodding approach to development typical of large, traditional enterprises. He left for Lob, a company that has built with Node from the beginning, and upholds an agile development philosophy that matched his own.
Why does he prefer Node? One reason is the speed and flexibility of the language.
“It’s so quick to prototype or get something running,” says Hunter. “Turnaround is so fast. You can innovate in ways competitors can’t.”
That speed has enabled Lob developers to maintain an ambitious release schedule, often deploying changes ten times per day. That kind of schedule isn’t generally possible with Java apps, which can take hours just to compile, often limiting companies to quarterly deployments.
Node’s asynchronous operation is also a great fit for Lob’s services in particular, and an engaging challenge for Hunter. The software can proactively send notifications at each stage of a process, such as creating, printing and delivering a postcard, without waiting for a client to request a status update from Lob. This keeps customers continuously appraised of progress and in control of the process, while minimizing resource usage.
Hunter is also a big fan of Node’s open source identity, enabling anyone to contribute instead of giving one company control of the platform. That has enabled Node to benefit from its huge user community. Node.js users have built the world’s largest package library, with prebuilt packages available for anything from obscure databases to new protocols.
Hunter was initially inspired to take up programming as a teenage game developer, first starting with languages like Perl and PHP. When he later discovered Node.js he was excited by its applications for building multiplayer games where players could interact with other players in near real time. However, it took him longer to learn more niche Node applications, such as standing up databases and synchronizing processes. While the tools were there, the educational resources hadn’t been fleshed out, making it difficult for new developers to learn backend skills.
Hunter points out that this experience is common for application developers, who often get thrown into situations with use cases that they aren’t familiar with, like load balancing or communicating with another server. So as he worked for companies as a Node.js developer over the past six years, Hunter gained knowledge applicable to the book, eventually building a resource to help other developers thrive in both enterprise and startup roles.
By teaching Node.js developers advanced skills, Hunter also hopes to encourage developers and CTOs to make their applications more robust and scalable.
“One of my hopes is that a CTO or early employee at a startup might realize they should dedicate resources to system observability early on in the process.”
You can also catch Hunter speaking at Node Congress on February 18-19, 2021.