Hiring a senior JavaScript developer
Mar 28, 2018 - 3 min read

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.

Previous & Next
TLDR If you have no time for TDD, you should at least use types. I do enjoy test-driven development. Not on its own, but as one of the… read more…
Recently interesting coincidence has happened. I lost two domains at the same time. What happened to each of them turned out to be… read more…
Recent
For a very long time, I kept using the same set of questions while performing interviews. Even though I created it with Angular in mind… read more…
Let's face it: there are not enough opportunities for people with little commercial experience when at the same time there is massive… read more…
People dealing with rejection often allow their emotions to build new imaginary words. As they drew in denial or simply accept the change… read more…
I just came from a refreshing holiday. It wasn't restful by any means. No, it was quite a job looking after my two-year-old son while… read more…

Powered with by Gatsby 1.0