Screening developers? Check our code tests platform.

9 min read Author: Vojtech

How to test & screen Javascript developers

Onboarding Javascript engineers? Make sure to evaluate their skills in order to build the skyrocket team!

How to test & screen Javascript developer

Identifying elite Javascript engineers is essential

You are reading this guide because you are probably planning to hire a javascript developer. And you probably know hiring a bad Javascript developer can be a nightmare. That is why we created this guide to help you test and screen the best javascript developer candidates.

What is Javascript

Let's shortly begin with the definition of Javascript. Javascript is a client-side scripting language and one of the most popular technologies for programming interactive web applications. Client side means that it runs on the client - for example a browser, instead of on the server. Javascript allows the creation of sophisticated web apps, dynamic libraries, complicated forms and many others. It is evolving practically every day and probably no other programming language has so many frameworks as Javascript on it.

Javascript frameworks

For a long time Javascript has been used mainly for frontend development. Frontend is the part of the app that you can see and use (rather than a backend, that is taking care of data manipulation, functions, etc.). The  most popular Javascript frameworks used for Frontend are: React.js created by Facebook, Angular created by Google, Vue.js, jQuery, Ember.js and many others. The interesting thing is that a few years ago, the first javascript framework used for backend development was created - Node.js. Thanks to that, developers are able to use one base technology - Javascript - to develop the complete web application.

Databases used with Javascript

MongoDB is one of the most popular databases which is used together with Javascript. MongoDB is a document-oriented database, storing the data in JSON-like documents. Besides Mongo, the other popular database languages can be used with Javascript as well - PostgreSQL, MySQL, SQLite, Firebase and others.

Which skills should the Javascript developer have

After describing what Javascript is used for and which technologies it is surrounded by, it will be easier to understand what are the most important skills of an elite Javascript developer you want to have in your team.

  • Front-end technologies
  • Core Javascript concepts
  • Javascript frameworks
  • Server-side technologies
  • Cross-browser code

Knowledge of frontend technologies

As mentioned earlier, Javascript is mostly used for frontend development. It means that the developer you want to have in your team should be very much familiar with the general frontend development principles. Knowledge of HTML and CSS is an absolute must. Javascript engineers should also know the DOM principles - how to manipulate with the objects - parts of a web page, how to select, animate, add, remove elements on the page, how to assess and modify data and others.

Core Javascript concepts

An experienced JS developer has to also understand the core javascript concepts, which are: variables and data types, objects and arrays, asynchronous programming, loops, functions, classes and modules.

Javascript frameworks

The most popular Javascript frameworks are described in the second section of this article, so let's just briefly mention them. Frontend JS frameworks are: React.js, Vue.js, Angular, jQuery and others. For backend development, Node.js is the most popular Javascript framework.

Server-side technologies

As mentioned earlier, Javascript can be used for server-side development using its popular framework - Node.js. Experience with this type of development is needed in case you are looking for a full-stack developer. It means developer, who is building both the frontend and backend. Hiring a full-stack developer is very popular since the startup founder/scrum master/project manager only communicates with one person rather than with 2 developers. It can also save some time having a full-stack developer onboard. On the other hand, some managers prefer having deeply specialized developers both form backend and frontend.

Cross browser code

When implementing a web application it is essential to build it in a way when it is optimized for all popular browsers - Google Chrome, Safari, Edge, … A javascript developer should be aware of the differences between these browsers and should be able to implement the code which will be working on all of these platforms.

Evaluating skills of Javascript developers

When you are hiring a Javascript developer, you have several ways to test your candidates skills. The first, easiest and most relevant way is to use a technical assessment platform which is focused on software development assessments. The advantage is that platforms like that have years of experience creating and improving assessments and the results you get from the test are very reliable and relevant. The disadvantage is you usually have to pay for these solutions.

The best option is finding a platform that is not charging monthly or yearly fees but credits per candidate invitation. Example of such a platform is for example EliteBrains. You can try the coding assessments here.

The other option is testing the developer on your own. If you have a solid IT background, it is doable as well. Below we put together several interview questions you can use:

Javascript interview questions

When hiring a developer, you should have a set of questions you will ask them to make sure they are skilled enough to work on your project. We have prepared a list of the most important questions together with the answers.

Q: What is the difference between the map() and the forEach() methods on the Array prototype?

 

A:

  1. There is no difference.
  2. The forEach() method returns a single output value, whereas the map() method performs operation on each value in the array.
  3. The map() method returns a new array with a transformation applied on each item in the original array, whereas the forEach() method iterates through an array with no return value. (correct)
  4. The forEach() method returns a new array with a transformation applied on each item in the original array, whereas the map() method iterates through an array with no return value.

 

Q: Which statement is used to skip iteration of the loop?

A:

  1. pass
  2. break
  3. skip
  4. Continue (correct)

 

Q: What will this code print?


const obj = {
a: 1,
b: 2,
c: 3,
};

const obj2 = {
...obj,
a: 0,
};

console.log(obj2.a, obj2.b);

A:

  1. Nothing, it will throw an error
  2. 0 2 (correct)
  3. undefined 2
  4. null 2

 

What is the output of the following code:

const quickSort = arr => {

const a = [...arr];

if (a.length < 2) return a;

const pivotIndex = Math.floor(arr.length / 2);

const pivot = a[pivotIndex];

const [lo, hi] = a.reduce(

  (acc, val, i) => {

    if (val < pivot || (val === pivot && i != pivot)) {

      acc[0].push(val);

    } else if (val > pivot) {

      acc[1].push(val);

    }

    return acc;

  },

  [[], []]

);

return [...quickSort(lo), pivot, ...quickSort(hi)];

};

console.log(quickSort([1, 6, 1, 5, 3, 2, 1, 4]));

  1. [1,1,1,2,3,4,5,6]
  2. Uncaught RangeError: Maximum call stack size exceeded (correct)
  3. Uncaught TypeError: arr is not iterable
  4. [3, 5, 6]

 

Q: What is the output of the following code:

function a(value) {
  var dtypes = [Function, RegExp, Number, String, Boolean, Object],
      x, len;

  if (typeof value === "object" || typeof value === "function") {
      for (x = 0, len = dtypes.length; x < len; x++) {
          if (value instanceof dtypes[x]) {
              return dtypes[x];
          }
      }
  }

  return typeof values;
}
console.log(a(12));
console.log(a('w3resource'));
console.log(a(false));

  1. 12
    w3resource
    false
  2. number
    string
    boolean
  3. undefined
    undefined
    undefined (correct)
  4. Error; UNKNOWN DATA_TYPE