Hiring a senior JavaScript developer


I will risk a thesis to start with - you can’t judge seniority of the JavaScript developer by experience counted in years.

Let’s start with few historical facts:

  • React was released in 2013, that is 4 years ago.
  • Vue was released in 2014, that is 3 years ago.
  • Angular (2) was released in 2016, that is 16 months ago.
  • ECMA 6 was published in 2015.
  • ECMA 7 was published in 2016.
  • TypeScript was released in 2012, that is 5 years ago.
  • NodeJS was released in 2009, that is 8 years ago, and that’s when all has begun.

And some findings from own recruitment processes in last two years:

  • Most of the candidates considering themselves as senior had no idea about vanilla features of arrays and objects, not mentioning prototypes and functions as class constructors.
  • Most of the candidates considering themselves experienced in Angular 2 had no idea what observables are and how binding works in either Angular 1 or 2/4.
  • Most of the senior-ish candidates confused dependency injection with imports, could not explain how callbacks or promises works or had no idea of differences between fat arrow functions and normal ones (even when they used them in their own portfolio).
  • Hardly any candidate I interviewed for either frontend or backend role was aware of CORS.

Most of those candidates had over 5 years of commercial experience in JavaScript, often under big brands.

Questions I always ask were mentioned before in the article 10 questions I ask each senior Angular candidate.

So what’s the problem?

I had the luck to start with JavaScript early. Over a decade ago when jQuery wasn’t a big thing yet and every browser had own standards. Even more lucky I became when I joined Ovi team at Nokia Gate5 where based on experiences of Yahoo, Dojo and MooTools we were creating one of the first webOses for mobile devices.

That experience made me very strong in Vanilla JavaScript on the pre-NodeJS level, but to be honest is not very relevant anymore. I had to keep learning same as whole landscape kept changing post-release of NodeJs.

Currently, we experience massive growth of frameworks and stacks using this language and its subsets (like TypeScript). That created also a huge demand for specialists in that area. Supply is not even close to matching it.

One of the main problems we face in the search for the candidates is the way to assess their seniority. As you see above technology we operate in, as well language used is fairly young. Based on own experience it’s not a rare case to meet developers with over a decade experience and very weak understanding of fundamentals of the language they operate.

We can’t forget that biggest power of the JavaScript is that it has very low entry level and current frameworks make it even lower. That means someone can be easily delusional about their abilities.

So what is the answer?

There is not a single one and my opinion here can’t be used as a rule. And even I promised myself to not build posts on opinion, here I will make an exception (at least I tried to use some data).

  • First, seniority in vanilla is quite rare, therefore expensive in time and money. Anyhow adds massive flexibility and should be appreciated.
  • Second, seniority in frameworks have little value these days as they simply evolve too fast. It makes sense to focus on it while hiring contractors, but not perms.
  • Third, attitude, openness to learn, pro-active behaviour and ambition is a far better indicator of the quality of the candidate than years on the CV.
  • Fourth, open source contribution is a massive help and should be a sign. I worked with a number of developers who were afraid to contribute back to libraries they used or did not like the idea of it and often had problems following shared standards or along to changes in the environment.
  • Fifth, after few stupid and insulting responses to remote tasks I did in the past I will never do them myself. Same I won’t do them with my candidates. Best interviews I spent with teams that tested my skills in person.
  • Last but not least important, we have probation periods forsake. We should use them.

What are your thoughts on that topic? Tweet me at @sielay or comment below.

Related Posts

TypeScript as a defense

React with RxJS

Dot2Doc

Hello again