Want to hire Node.js developers for your project? In the past year, we’ve built several remote teams of Node.js engineers for both startups and multimillion brands. And we’ve noticed that most companies repeated the same mistakes when searching for candidates.
In this post, I’ll cover five common errors that people make when selecting and recruiting Node.js developers. Avoid the mistakes listed below, and you’ll find the right candidates faster.
1. Ignoring specialists with less than 3 years of experience in Node.js
Sure thing, everyone wants to hire senior Node.js developers with 5+ years of expertise in the technology. Actually, 3+ years of enterprise-grade experience in Node was a critical requirement in 90% of cases we’ve dealt with.
The problem is experienced backend developers for hire with 3+ years of Node.js background are almost as rare as Bismuth crystals… or purple carrots.
Even though Node has been around since 2009, it initially had a reputation of an “alternative” backend technology for small websites. It took almost five years before big names like PayPal started building large-scale applications with Node.js. And it took even more time for the larger developer community to pick up Node as a mainstream technology for enterprise-grade backend development.
For this reason, it often makes sense to look at the experience with other backend languages when hiring a Node developer. More often than not, a senior backend engineer with 5-year background in Java or Ruby and 2+ years of experience in Node will do just fine.
typeof null; // ‘object’ — a mistake in the language standard, and an often-quoted reason why PHP devs ‘love’ JS.
Aside from corner cases, there are quite a few must-know things that should be included into a Node.js job interview:
- variables hoisting
- pure functions
- difference between setTimeout, setInterval, setImmediate, and nextTick
- readability vs performance
- TDD in JS and Node.js development.
3. Only looking for Node.js developers for hire in your vicinity
Believing that you should only hire Node.js developers locally is a major misconception that turns the search of a candidate into a tedium.
Quite ironically, far too many companies waste months researching local job markets before moving on to other options. At the same time, tech giants like Google, Apple, IBM, Adobe, Cisco, and Microsoft have been recruiting remote talent for years. So why not follow the example of industry leaders?
Here are a couple of reasons to consider hiring a remote Node.js developer from a dev shop:
- Compared to product companies, dev shops have way more expertise in the recruitment of software developers. They find better candidates faster, and their vetting process is more comprehensive. As a result, you only need to choose from great candidates when hiring from a dev shop.
- Dev shops spend a lot of resources to keep their attrition rates low. They invest into their developers’ professional growth, wellness, and ownership mentality. Thanks to this approach, people from dev shops are more motivated than freelancers.
- When hiring Node.js developers via a dev shop, you can count on replacement should anything unexpected happen.
- Most dev shops practice cross-reviews, which leads to better code quality.
- Great dev shops offer a lot in the way of value add. Specifically, some of them will provide legal assistance and handle tax matters related to their candidates.
4. Not giving enough focus to security-related interview questions
Even though security might seem like a niche matter, it becomes a pain point as your application scales. For this reason, the knowledge of security-related best practices is a must for any hirable Node.js developer.
According to Rising Stack, about 15% of npm packages had known vulnerabilities, and approximately 76% of dev shops had been using vulnerable packages as of September, 2016.
While Node.js isn’t inherently risky, it’s the first backend technology for many frontend developers who aren’t exactly great at handling security issues. A good way to mitigate potential security-related issues is to include one of the following questions into your interview when hiring new Node JS developers:
- What is the purpose of depcheck?
- How to check what packages are used at the moment?
- How to check if a package has known vulnerabilities?
- Does it make sense to use more popular packages from a security perspective? How do you know if a package is popular?
- How to check if you’re using the latest version of a package?
- How to check the number of maintainers a particular package has?
5. Expecting full-stack web devs to be as good as dedicated backend developers
While full stack devs can be comparable to specialised Node.js engineers, this isn’t something that you can always expect from them. And this difference is something that you need to consider when hiring a Node.js developer for your project.
In many cases, full stack developers make solid generalists. However, they are seldom as good as dedicated backend developers when it comes to details. That’s why sometimes it might be a wiser to search for a former Java or .Net developer with experience in Node rather than IU-gone-fullstack devs.
To check in-depth knowledge of Node.js, you can ask your candidate the following questions:
- What would happen if 1M of users simultaneously requested their cat videos from a Node app?
- How does thread pool work in Node? What limitations does it impose on developers?
- What is Global Interpreter Lock, and how does Node work with it? (Note that this one only works for candidates with prior background in other server-side technologies like Python or Ruby.)
Bottom line: we all make mistakes
Even the smartest of us make mistakes. Some cost a lot more than others. This holds true when hiring software engineers, and this is painfully true when it comes to hiring Node.js developers. The good news is we all can learn from mistakes — and it’s best to learn from those errors that other people make.
In case you’re interested in other tips, check out our post on the skillset that you should target when hiring a Node.js developer. And if there’s anything you’d like to see added to this list, leave a comment:)