by Sharon Florentine

What to look for in hiring a Node.js developer

Feature
Dec 21, 2017
IT SkillsSoftware DevelopmentStaff Management

Looking for Node.js developers to join your dev team? Here’s how to vet candidates for your next hire.

Node.js’s speed, accessibility, data streaming and sharing capabilities have made it an incredibly popular choice for creating intuitive, responsive and robust web applications — and one of the best-loved technologies according to the StackOverflow 2017 developer survey.

But what should you look for when hiring Node.js talent? And how can you assess a developer’s competency with the platform?

First, it’s important to understand what sets Node.js apart, says Tracy Hinds, education community manager of the Node.js Foundation.

“What sets Node.js apart is the ecosystem we have around it,” Hinds says. “Node is open source; it’s the core language that lives on the server side, and JavaScript lives on the web side. That means there’s a pretty good chance, no matter what your language, that you’ll use JavaScript at some point if you’re developing for the web.”

Node.js offers code packages and modules – code written by other developers and made public — that any developer can use to help build certain aspects and functionality in the web applications they’re developing, which makes it easier and faster to build web apps, she says.

Another key feature developers love is that Node, via JavaScript, makes it possible for developers to write applications for a full technology stack and not have to switch when shifting from front-end to back-end development, Hinds says. “This is a great thing for developers who’ve worked with other back-end languages, because they don’t have to do ‘context switching,’ back and forth, or worry about compatibility,” she says.

What should you look for when hiring developers with Node.js experience? Besides looking for the usual design thinking, logic, collaboration and communication skills you’d need when hiring any developer, there are some things that are unique to Node developers, says Jeff McAffer, director of open source programs office at Microsoft.

“Because the Node ecosystem is huge, and there’s so much code; so many modules already written, one of the first things any Node developer asks when they’re programming is, ‘Is there an npm for that?’” McAffer says. npm (node package manager) is an open, online repository for publishing open source Node.js projects and a command-line utility for interacting with that repository. “In other words, developers ask themselves, ‘Has someone already solved this problem and written code that I can use in my own project?’” McAffer says.

“You want your people to know how to look for an existing Node [package] that does what they’re trying to do — that demonstrates commitment to a level of efficiency,” he says. “Then, you need to make sure they can interact with and engage that code and make it integrate with your existing systems so the whole thing works. There are some developers who haven’t been successful who insist on doing everything from scratch, themselves, and they end up reinventing the wheel and wasting time.”

The flipside to this are candidates who claim to be Node.js developers who simply cut and paste from the npm without having the skills or the experience to integrate, test and debug their projects, McAffer says. That’s bad news.

“Without understanding things in Node and JavaScript, like promises, concurrency, callbacks, then you’re not going to make it through the interview,” he says. “If I’m interviewing a potential candidate, I need to know they can do more than just the cut-and-paste; I’m asking them how they would integrate certain modules with other systems. I want them to explain to me how certain systems, processes work,” McAffer says. Another great question he asks is, “How would you debug this?” The candidates answer should demonstrate a clear ability to identify and resolve potential issues.

In addition, understanding the data flow of a Node.js application; streams and buffers; asynchronous programming and asynchronous behavior; security and performance needs and how to improve those as well as how to ensure Node.js and JavaScript applications can scale are critical skills when hiring Node.js developers, says Hinds.

In addition, CIOs and hiring managers should look for candidates who have already used Node.js in production environments. Also, candidates who have attended developer meetups, conferences and taken advantage of education opportunities, as well as contributed code to the ecosystem and/or filed bug reports, also stand out.

“Not only does this show your commitment to the ecosystem, it demonstrates your coding ability in the real world and it proves to a CIO or a hiring manager that you can collaborate with others and communicate effectively,” Hinds says.