Tips on Hiring Your Node.js Developer - Band of Coders

Tips on Hiring Your Node.js Developer

July 23, 2015 Blog

BACK TO STORIES

Node.js has been getting a lot of attention in the technical press.  Node.js catapults JavaScript out of the browser and on to the server.  In other words, Node.js is a JavaScript runtime environment. The Node run-time environment includes everything you need to execute a program written in JavaScript.There are a lot of benefits with 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 it is in 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 the best Node.js talent out there.

JavaScript is JavaScript is JavaScript

JavaScript in the browser is the same as JavaScript on the server which is the same as 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..  For this reason, it is important for you to spend time finding the candidate’s comfort level with it.  This is different than gauging their browser- based JavaScript knowledge. It is important that the candidate understands 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 in 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.

So now that we have covered a bit of the basics, let’s get into some tips for hiring great Node.js developers.

1) Look for a Node.js developer who is active in their community, or open to becoming active

  • Node.js started as an open source project with contributions coming in from many developers around the world.  It allows developers to extend its 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.

2) Talk to The Prospect Directly

  • The best place to find Node.js developers is going to be in the places they 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.

3) 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.

Good Luck

Node.js is a very popular technology in the already hot market for JavaScript developers.  Node.js developers can be flexible and are often 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 them an environment where they can continue their Node.js education  will go a long way towards enticing a great developer.

Shoot me an email at us@bandofcoders.com and let’s start talking.

David Posin

Web Developer and Blogger