When hiring a Node.js developer for any purpose there are a few common things to look for.
Candidates should be able to demonstrate an understanding of programming concepts like recursion, common design patterns, and paradigms such as functional programming and OOP (object-oriented programming). Since Node.js is designed for asynchronous execution, developers should also be comfortable with callbacks, promises, async/await, and streams.
Every Node.js developer should be familiar with core Node.js modules with functions for networking and file system operations, as well as widely used NPM packages. To work on any sophisticated project, a good candidate should have experience with refactoring and using testing tools such as Jest or Cypress.
Finally, most (but not all) Node.js projects will benefit from knowledge and experience working with web and internet protocols, database systems, operating systems, and security principles.
Get specific about your needs
Beyond the basics, choosing the right Node.js developer depends on what you need to accomplish. Node.js is great for making everything from static websites and APIs to “serverless” functions, desktop apps, and even IoT device orchestration. One way to zero in on candidates with the right skills for your project is to ask a few questions about your needs.
What stage is your project?
If you’re starting from scratch, look for a more senior developer who can help you select the right technologies. For a direction-setting role, broad experience is important. Candidates should have experience with a variety of frameworks, along with a good understanding of architectural patterns like REST and alternatives to APIs like WebSockets and GraphQL.
To take over an existing project, a Node.js developer will ideally have worked extensively with the specific packages and frameworks you’re already using. Experience with refactoring, debugging techniques, and testing practices is especially important.
If you’re growing a team, skills alone don’t make for a good fit. Work style becomes more important. Do you need an artisan, innovator, producer, partner, or leader? Has the developer previously worked on a team like yours?
Are you increasing bandwidth or adding expertise?
Delegating work because of limited bandwidth looks different from hiring specialized expertise to fill knowledge gaps. If you already have a good technical foundation and just need more bandwidth, it may be best to hire an early or mid-career engineer. They will be hungry for experience and more willing to take direction. If you’re in need of specialized expertise to solve hard problems outside your team’s current capabilities, a more senior candidate will have more to offer.
Is there a steep learning curve to your business?
It might take more effort to ramp up on a scientific computing project than an e-commerce MVP. If your project requires a deep understanding of subject matter such as financial regulations or health care, in addition to technical skills, it’s a good idea to look for someone who’s already worked in these domains.
If you’re making a real estate app, that former Zillow engineer might be ready to rock your world. However, don’t get too hung up on finding a perfect match. Depending on the space you’re in it can be nearly impossible to find a perfect match. A Node.js developer who minored in polymer synthesis might as well be a unicorn.
How will your project be deployed?
Depending on the complexity of your app, it can be simple or tricky to deploy. There are more options for running Node.js in production than ever before, and each can require specialized skills. In general it’s a good idea to look for candidates comfortable setting up and using CI/CD pipelines. Your deployment might benefit from a platform like Netflify or it could require more serious DevOps chops. In any case, make sure your new developer will be able to push new code to production.
If your application requires authentication, authorization, single sign on, or other security measures, look for a developer who is familiar with relevant standards and protocols like OAuth, OpenID Connect, and JWTs as well as access control models such as RBAC and ACLs. In addition, application security needs special attention. Developers should have some idea about common vulnerabilities such as OWASP Top 10.
There’s a lot of thought that goes into adding someone to your team. If you’re looking to find a Node.js developer who is already fully vetted and ready to work, come talk to us and see how we can help you grow.
Interested in working with Gun.io? We specialize in helping engineers hire (and get hired by) the best minds in software development.