This short guide will give you a few tips for things to look out for when scouting Node talent.
1) Why Node?
Node has a sweet logo.
The first question is one you must ask yourself: Why Node?
Many companies are hiring Node developers now, but do all of them need to? I'm not so sure. Node is a powerful tool, no doubt, but it's a tough beast to tame. It might not be right for your application. Before you hire a developer, stop and think, why am I choosing Node? If you just need to build a CRUD (create, read, update, delete) application, you may be better off hiring a Django or a Rails developer instead, as they have larger communities and more established documentation.
2) Open Source
Once you've decided that yes, Node is for you, what should you be looking for?
The best place to get started when evaluating a candidate is their open source portfolio. This will usually mean looking through their GitHub profile, or something similar.
Hopefully, your candidate will have numerous open source Node projects under their belt. Ideally, those projects will be well maintained.
At the end of the day, data is king.
There are many database options for Node.js applications, and you should make sure your candidate is familiar with them. Do you need a relational database or a NoSQL one? Why? Which implementation do you want to use?
There is no right answer, but there may very well be wrong answers. Make sure your candidate is well versed in the options available, has opinions about them and the knowledge to back those opinions up.
4) Beyond HTTP
Socket.io has a bad logo, but it still rocks.
Much of the hidden power of Node is that it goes well beyond just the normal HTTP applications. It can serve anything in an event-driven way.
Does your candidate have experience using Node for things beyond HTTP? Some awesome examples might be an XMPP server/client, or a peer to peer protocol, like BitTorrent.
Even if your candidate doesn't have experience with non-HTTP protocols, they should at least have experience with Socket.io, the awesome WebSockets package for Node which makes interactive, multi-user web applications possible.
5) Node Deployment and DevOps
Node is tricky to deploy. There is no canonical document about how to deploy it, as most node deployments have different requirements.
Every Node developer must also be a DevOp, a developer involved in operations. Does your candidate know what to do in the event of a crash? Do they know how to scale their application across many database servers? How should they be doing load balancing? You'll want to address all of these issues with the candidate.
For some of the challenges involved with deploying Node.js, checkout Node.js Deploy Guide, which addresses many concerns about deploying Node.
Security is the elephant in the Node.js room. (Wow, I butchered that cliche. Sorry about that.)
Most guides to writing and deploying Node applications completely ignore security. There are going to be some major disasters with regards to Node security in the coming years, and you don't want to be one of them, so make sure your candidate knows their stuff when it comes to security!
After reading this, you should have some good ideas about what to look for when seeking a NodeJS programmer for your next project!
Questions, comments? Leave them below!