Tips on Hiring Your Node.js Developer

July 23, 2015 Blog

Node.js has been getting a lot of attention in the technical press.  Node.js catapults JavaScript out of the browser onto the server.  There are a lot of benefits from this arrangement.  Companies such as LinkedIn, Microsoft, and Walmart, among many others, have adopted Node.js to act as API and web publishing endpoints for many of their applications.  Node’s lightweight asynchronous architecture means that it can reliably support thousands of current connections with only a moderate amount of hardware.  For the web developer, this has offered a whole new world of opportunities.  Web developers can now compliment their front end work with back end services without relying on already overworked back end developers.

If you have decided to bring Node.js into your organization, or your developers are clamoring to use it, then you will probably need some Node.js development talent.  The way JavaScript is employed in Node is not exactly the same as the browser, so web development experience is not necessarily enough to make a good Node.js developer.  Here are some things to know that will help you to identify and find the best Node.js talent out there.

“JavaScript is a cross-platform, object-oriented scripting language…Inside a host environment, JavaScript can be connected to the objects of its environment to provide programmatic control over them.”

JavaScript is JavaScript is JavaScript

JavaScript in the browser is the same as JavaScript on the server which is the same JavaScript running on a Raspberry Pi.  This is one of the attractive features of JavaScript.  The language is the same on all the platforms it has been ported to.  This means that JavaScript developers can work in all kinds of environments: browsers, servers, drones, Internet of Things, etc.

It is important for candidates to understand the ubiquitous parts of JavaScript that are used on all those platforms.  In other words, spend time finding the candidate’s comfort level with just JavaScript.  This is different than gauging their browser based JavaScript knowledge.  It is important that the candidate understand the language itself.  It’s best to search for resources like Front End Developer Interview Questions that have sections devoted to non-browser specific JavaScript questions.  Questions about asynchronous operations, objects, prototypical inheritance, and basic flow operations are key.

JavaScript works roughly the same in all those environments, but working in one environment doesn’t mean the developer has the skills to work in another.  Using JavaScript in Node.js is syntactically the same as the browser, but you can’t perform all the same operations.  When interviewing for a Node.js developer spend some time to make sure the candidate can answer some Node.js specific interview questions, such as 10 Interview Questions on Node.js or Top 25 Interview Questions on Node.js.

“The very collaborative environment that all these facets of Node.js development generates permeates the Node.js community.”

The Community

Node.js started as an open source project with contributions coming in from many developers around the world.  It allows developers to extend it’s functionality with modules that are also open source.  Modules have been created by even more developers for different purposes.  The very collaborative environment that all these facets of Node.js development generates permeates the Node.js community.  Ideally, your candidate has played some part in this giant ecosystem.

The vast majority of Node.js developers will not have contributed to Node.js itself, but may have contributed to a module in the Node.js ecosystem.  The main index for Node.js modules is located at https://www.npmjs.com.  If you have a candidate that can point to a module they created, or assisted on, then you know you have a good candidate.

Most modules are hosted on Github.com giving all Node.js developers decent experience using the Github repository system.  Any developer who has contributed to a Node.js module, Node.js itself, or their own Node.js experiments will have a profile on Github showing their contributions.  There are still many more Node.js developers who have never contributed to a module but most will have projects or experiments on Github. An active profile on Github is a characteristic of an experienced Node.js developer.

Talking to The Prospect Directly

The best place to find Node.js developers is going to be in the places they are most likely to frequent.  The main Node.js site is run by Joyent at http://www.nodejs.org.  This is the main hub of all Node.js activities.  This site contains all the important information about Node.js: downloads, documentation, and outreach.  There is a job board at http://jobs.nodejs.org.  Having a position listed here is bound to get developer attention.

The runner up for most Node.js developer activity is npm.  Npm is where all developers go to research modules they need for their projects or to find projects to contribute to.  Npm has a page devoted to listing companies trying to hire developers, and you can have your company listed there.  The page is located at https://www.npmjs.com/whoshiring.  There is an email address at the bottom of the page to contact if you want to place your company on the list.

We mentioned Cooper Press in our Ruby on Rails article last month, and are mentioning them again here.  Cooper Press is one of the best places to go to speak to a specific technological demographic and Node is no exception.  Cooper Press publishes Node Weekly and JavaScript Weekly both of which are great ways to get your position in front of a potential Node.js developer candidate.

“Node.js is a server side technology and will often need to talk to other back end components.”

Additional Skills

Node.js is a server side technology and will often need to talk to other back end components.  A good Node.js developer is going to be familiar with NoSQL databases.  Understanding flat databases also applies to being able to implement a caching system to improve performance.  MongoDB is one of the current favorite NoSQL databases, and Redis is the best supported cache at this time.  Although most Node.js applications will talk to NoSQL databases, all strong Node.js candidates should be familiar with the basics of a relational database system, like MySQL or MariaDB.

Node.js is for more than back end operations.  Node.js is popular as a platform for process heavy operations that compliment the front end.  For example, templating can be resource intensive and is a common task assigned to Node.js servers.  Client devices (phones, tablets, computers) are not guaranteed to be powerful so having a template resolved on the server can be a huge performance gain.  A good Node.js developer will understand templating as one of several front end performance improvement techniques along with websockets and offloading work to child processes among others.

Good Luck

Node.js is a very popular technology in the already hot market for JavaScript developers.  Node.js developers can be flexible and can often be fielding opportunities for both Node.js and traditional front-end roles.  One thing most Node.js developers will have in common is a desire to experiment and take risks.  Providing an environment where they can grow as Node.js continues to grow will go a long way towards enticing a great developer.

 

1 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction
Update 7/31/15: An earlier version of the article mistakenly referred to MariaDB as a NoSQL database. MariaDB is a fork of MySQL.

David Posin

Web Developer and Blogger

Leave a Reply

Your email address will not be published. Required fields are marked *