How to find pure Node.js developers and what keys to use for boolean search
Initially, JavaScript was running in browsers only. With Node.js release in 2009, it became possible to use JavaScript for backend development.
When we say that backend code is written in Node.js, we actually mean JavaScript. Because Node.js is a JavaScript runtime, not a programming language.
However, there is a difference between how JavaScript runs in browsers and inside Node.js. It means that Frontend developers with JavaScript experience but without Node.js experience will not be good candidates for Node.js roles.
With that said, for Node.js roles you need to find candidates who have production experience with this technology.
Frontend developers focus on building client-side applications and they often use Node.js in development where basic Node.js knowledge is enough.
Backend developers focus on server-side development where advanced Node.js knowledge is a must-have requirement. And, of course, databases.
There are two possible scenarios with Node.js:
- Fullstack development with Node.js and any popular Frontend frameworks (e.g. React, Vue, Angular, but there are more)
- Pure backend development with Node.js.
The two are not the same despite Node.js being present in both.
Fullstack development
Ability to use JavaScript for client and server-side development made fullstack developer roles a real thing. Since the JavaScript ecosystem is shared between client and server and differences between how JavaScript runs in browsers and in Node.js are not rocket science, developers can build fully functional, scalable and reliable web applications.
In simple terms, a single developer can build both Frontend and Backend parts of an application.
Usually, a popular Frontend library or framework is used for client-side and a Node.js framework for server-side complemented with NoSQL databases, for example, MongoDB.
The above technology combination is referred to as ME*N stack (e.g. MEAN, MERN, MEVN) where * stands for a Frontend library or framework.
Alternatively, one can use advanced SSR frameworks, for instance, Next.js or Nuxt.js. These frameworks provide a lot of great features out of the box to simplify development, hence devs can start using them without advanced production Node.js experience. And they can even build great apps and easily deploy them using Platform-as-a-Service (PaaS). One such platform is Vercel - creator of Next.js. All it takes is a few clicks and the app is deployed and will scale as needed.
Without knowing the details, this may create an illusion that developers are very experienced in backend as well as DevOps related tech. Sadly, it is not true in most cases. Simply, because the PaaS will do everything automatically requiring zero effort from the developer's side.
Using the above Node.js frameworks requires a good understanding of how Node.js works to avoid Event Loop BLOCKING.
With Express.js, devs need to know how to catch, log and properly handle errors and how to build secure and fast REST APIs. But with other frameworks, developers may get many of these features out of the box.
While this approach saves time, it also requires less experience with Node.js compared to when one uses Node.js for pure backend development.
Additionally, projects built with these technologies usually aren’t complex enough to require developers to have experience with complex microservices architecture, message brokers, distributed caching or scaling SQL databases.
Keywords for Boolean search
ME*N stack:
- MongoDB (or mongo) - NoSQL database
- Express.js (or express.js or express) - web framework for Node.js
- React (or react.js) | View (or view.js) | Angular (or Angular 2 or other versions) | AngularJS (or angular.js) - frontend framework
- Node.js (or node) (JavaScript runtime)
The MongodDB + Express.js combination will search for ME*N stack developers with various Frontend frameworks. You can narrow down by adding, for example, React.
MongoDB + Node.js may help with finding ME*N stack devs who prefer Nest.js, Koa.js, Sails.js, Restify or any other framework over Express.
Technically, it’s not ME*N, but the idea can be the same. And learning Express.js is easy.
Learning most of those Node.js frameworks is not hard but will take some time. Frameworks usually have their own way of doing things and devs need to get into it. Express.js will be one of the simplest and it's very popular so you can expect most developers to have some experience with it. Nest.js is fully built with TypeScript hence requires advanced experience with the latter.
But TypeScript can be used with any JavaScript framework. It’s common to use TypeScript with Express.js.
Pure backend development with Node.js
Backend development always requires a programming language and a database. A framework can be optional.
Node.js development is usually done with frameworks. Express is one of the simplest yet powerful frameworks, but there are plenty of good options depending on the task.
Unlike with ME*N stack or fullstack development where the primary goal is to build fully functional apps with Javascript, backend development addresses a different set of concerns.
They are way more complex and require solid production experience with Node.js, SQL databases, scalable and fault-tolerant backend architecture principles, microservices, distributed caching and message brokers.
Fault-tolerant means that systems can continue operating without interruption when any of its components go down. Fault-tolerant architecture uses backup components to automatically replace failed components. This way a system works without interruptions as if no component failed.
Keywords summary: Scalable, fault-tolerant, microservices, caching or distributed caching, message brokers.
!!! The above are keywords to be used in Boolean search for any backend role regardless of the programming language.
Although Node.js is not a silver bullet and some tasks are better done with different technologies, one can build just about anything with Node. Hence the complexity of projects can be very high.
To figure out the keywords for finding devs who do pure backend development with Node.js, we need to take a look at what technologies they may use: Web Frameworks, Databases, ORMs, API, Search Engines, Log Frameworks (logging), Caching tools, tools for real time communication, message brokers and DevOps related tools.
The above categories are valid for all backend roles, however, some tech will be taken from the Node.js ecosystem.
Web Frameworks
Express.js is one of the most popular frameworks for Node.js. It provides a minimalistic and yet, powerful set of features that devs would need to write from scratch anyway. For that reason, developers pick Express.js instead of writing pure Node.js.
Although Express.js is part of ME*N stack, it’s often used for pure backend development.
Many other popular frameworks are based on top of Express.js. For instance: Feathers, LoopBack, Sails, NestJs.
Any of the above can be keywords, however, they can also be used as a backend for a fullstack application. Technically, they can be part of something like M**N stack meaning that devs will not be pure Node.js developers.
Developers will always mention frameworks if they use any in their profiles and CVs.
Keywords summary: Node or Node.js, Express or Express.js, Feathers, LoopBack, Sails, NestJs.
Most frameworks are either built with TypeScript or support it.
Therefore, you can try the following combinations of keywords:
- Node and TypeScript
- Node and [framework], e.g. Node + Express
- Node and [framework] + TypeScript
You can also add OOP or Object Oriented Programming, design patterns, FP or Function Programming since some frameworks use OOP and others - FP.
Design patterns are used with OOP so do not combine them with FP. A good example is: OOP + design patterns.
At this stage you will still get all devs, including M**N stack devs. You may even get Frontend devs who specify Node and TypeScript and maybe a framework based on some basic experience they had doing side projects.
Let’s narrow down using some more backend specific tech.
Databases
Both SQL and NoSQL databases can be found supporting a single project. Usually, Node.js developers will know both, however, they are likely to know SQL better.
NoSQL is very different from SQL and is easier to learn. It means that it’s better for a developer to be proficient with SQL and have an understanding of NoSQL because the latter is easier to understand and learn.
If a Node.js developer is proficient with NoSQL more than SQL, then it can be an indication of ME*N stack background.
Make no mistake. A NoSQL database alone does not mean that any given developer uses the ME*N stack. MongoDB is very popular and is used in many projects.
For ME*N stack you need to have a combination for Frontend and Backend technologies.
Developers will always mention databases in their profiles and CVs.
Keywords summary for SQL: SQL, MySQL, PostgreSQL, MariaDB
Keywords summary for NoSQL: MongoDB, Redis, LiteDB, Cassandra or Apache Cassandra, RavenDB, Apache CouchDB or CouchDB.
Now we can exclude developers with no database experience:
- Node + TypeScript + SQL is likely to return backend focused devs with experience in SQL (could be any SQL database).
- Node + MySQL will likely return even more results as not all devs use TypeScript.
Combining SQL and an SQL database, for instance, SQL + PostgresQL might not make much sense. On the other hand, SQL + MariaDB may be useful becaue it's SQL database.
Please, note that I am combining keywords from the perspective of a developer. I have no experience using LinkedIn boolean search. Some silly word combinations can still yield results so it makes sense to experiment.
Search results using a NoSQL keyword may include M**N stack developers. For example, Node + NoSQL or Node + MongoDB.
Using SQL + NoSQL will search for developers that have experience with both types of databases - common for backend focused developers.
- Node + SQL + NoSQL (any SQL and NoSQL database)
- Node + PostgreSQL + MongoDB (exact database match)
Node + PostgreSQL + Redis is going to be the most common scenario because backend devs working on large scale projects will have experience with caching. Redis is often the first choice for implementing a reliable and scalable caching system.
ORM systems
ORM stands for Object–relational mapping and is used as an abstraction layer for databases. You can read more about ORMs in my LinkedIN post.
You can still use ORM as a keyword but you would need to exclude Frontend frameworks (React, Vue, Angular). Otherwise, you may get M**N stack devs too.
Popular ORMs for SQL databases: Prisma, Sequelize, TypeORM, Bookshelf.js, Knex.js.
There is also a mongoose (or mongoosejs or mongoose.js) - Object Data Modelling (ODM) library for MongoDB. It’s similar to ORMs used for traditional SQL databases.
Keywords summary:
- Node + SQL + TypeORM will return candidates with TypeORM experience. You can narrow down to a specific database Node + MySQL + TypeORM but you would need to make sure that the ORM you are using supports the database you specify.
- Node + mongoose will return devs experienced with MongoDB.
API
Backend developers build REST APIs and GraphQL servers. Both can be used as keywords. Additionally, you can look for the axios library for making HTTP calls, however, it’s highly unlikely that devs mention axios and forget about REST.
Keywords summary:
- Node + REST
- Node + REST and/or GraphQL will return developers who have experience with GraphQL. From my experience, developers will specify both REST and GraphQL because all devs must be proficient with REST while GraphQL is good to have
Search Engines
When project requirements include some sort of content search, for example, for analytics, developers use battle tested, scalable and performant tools for that. Search can consume a lot of resources and such solutions as Elasticsearch or Apache Solr (or Solr) provide read-made functionality out of the box.
These tools are not hard to use. Presence of such tools in CVs may indicate that candidates have experience working on large and complex projects.
Keywords summary: Elasticsearch, Apache Solr (or Solr)
Log Frameworks (logging)
Depending on how the project is deployed, logging functionality can be
- either provided by the cloud provider
- or may need to be implemented by developers (for cases when cloud providers do not provide logging tools)
The latter requires libraries. For example, node-loggly, Morgan, Winston - all can be used as keywords.
Presence of such tools in CVs may indicate that candidates have solid experience with implementing proper error handling and logging mechanisms which is a sign of a backend focused developer.
Caching tools
This is where things are getting a bit more complex. Caching is a way of improving application performance. One does not implement caching unless it is needed. And it's usually needed on highload projects.
The Redis in-memory key-value store or Memcached system are usually used for implementing caching.
It’s common for developers to have experience with Redis even if they focus on SQL databases. For instance, Node.js + PostgreSQL + Redis can be combined together.
In complex systems there is a need for distributed cache which extends the traditional concept of cache used in a single location. A distributed cache is spread across multiple servers so that it can scale when needed.
Real time communication
Socket.IO is a JavaScript library for realtime web applications. Can be used as a keyword. Any Node.js developer may have experience implementing real time features because it’s easy to do with Socket.IO.
Use Socket.IO or Socket as a keyword.
Keywords summary: Caching - process of storing data temporarily in memory; Distributed cache - process of storing data temporarily in memory across multiple servers; Redis or Memcached are used for implementing caching.
Use the above keywords to find experienced backend developers. M**N stack developers, who focus on fullstack apps, should also be considered experienced in backend if they have experience implementing caching.
Message brokers
Message brokers are usually part of complex systems. Microservices architecture often uses message brokers for communications between its components.
Systems are easy to scale when they communicate by sending and listening to messages rather than talking directly to each other. Such communication is implemented using message brokers.
As a recruiter, you need to know that using message brokers e.g. RabbitMQ, Apache Kafka, Amazon SQS as keywords you can target backend developers with experience in building complex projects where all components communicate using messages with the help of a message broker.
DevOps related tools
It’s increasingly common for developers, especially backend devs, to have responsibilities related to DevOps. Therefore, we can often see Docker and Kubernetes mentioned in backend job descriptions.
Not only do backend developers build functionality, but they can also prepare it for deployment and even deploy it. It depends on how the company operates internally.
Including Docker, Kubernetes, Terraform, Ansible, AWS, GCP, Microsoft Azure, serverless, PM2 as keywords will allow you to search for backend developers with some experience in DevOps. This is definitely a sign of an either backend focused or experienced developer.
Keywords summary: Docker - for creating and managing containers. Kubernetes - for managing containers in production (inc. upscaling/downscaling). Terraform - IaC tool for describing infrastructure using code. Ansible - for managing configuration and many other deployment related processes automatically. AWS, GCP, Microsoft Azure - popular cloud providers. PM2 is a process manager for the JavaScript runtime Node.js. Helps to make sure that Node.js servers are always running.
By replacing Node.js with any other programming languages and using frameworks available for that language, you can search for backend developers.
- like👍0
- insightful💡0
- curious🤔0