Get $$$ for review

How much does it cost to hire a JavaScript developer

As JavaScript continues its glorious conquest, the demand to hire JavaScript developers is growing as well. Since the inception in 1995, JS has become one of the three major programming languages (HTML, CSS, JavaScript) powering most of websites and multiple widgets today. To hire a JavaScript developer who could really turn things around for you, to find and screen candidates we’ve arranged this article with all key considerations on the topic.

JavaScript is all around, from interactive elements of websites to small features in web and mobile applications. Though, don’t get too excited on this aspect, the one and only strong suit of JS lies in web development. Yet, it does not disprove soaring popularity: there are over 324,000 JavaScript repositories on GitHub, more than of any other language. Booming JavaScript frameworks like Angular.js, React.js, Node.js, Vue.js, and JavaScript libraries like jQuery, Babel, Meteor, ESLint, etc. have only upped its level.

55% of developers work with JavaScript (survey by Stack Overflow), which makes JS the top language in use.

Before talking about hiring process, few things you have to know about JavaScript, briefly.

Why JavaScript holds firm ground?

What is JavaScript? It is a programming language to build interactive effects for web applications. It is supported by all browsers, and essentially is a glueing part between the HTML (content on web pages like titles, text, images) and the CSS (layout and design, fonts, styles, etc.). With only HTML and CSS websites would be static, displaying data, but with JavaScript you can adds interactivity. What exactly? Videos, animations, news feeds, advertising, analytics etc.

Top examples like Google, Facebook, YouTube or Wikipedia all using JS should leave nobody unconvinced. Actually, about 90% of all websites globally utilize this coding language. What makes JS great? Firstly, all you need is a browser and a text editor, nothing else to install. Secondly, it will work everywhere, as every modern web browser supports it. Thirdly, it improves user experience: in simplest terms, a page doesn’t need to reload in response to user’s actions.

Get free estimation for your mobile app

Post your project or request a dedicated team - we'll quickly match you with the right experts.

Pros of JavaScript when comparing to other languages include the following:

  • Integration into HTML by default (unlike Java applications which one has to compile before running on web);
  • Dynamic tasks like animations, whereas the HTML only defines the static content and web page structure;
  • In response to PHP as a common server-side language for data transferring within the web, there’s Node by JavaScript.

On the other hand, JS isn’t perfect, and its popularity apparently can be determined more precisely as ‘necessity’. Web developers, in fact, have no other choice, as JS is the only language native to web browsers. Any programming language has flaws, JS including, and some pundits express their attitude towards developers’ fascination with JavaScript as a “mass psychosis”.

What type of developer do you need?

Nevertheless, JavaScript developers are in high demand. The extensive Stack Overflow survey of 50,000 programmers shows 55.4% of them use JS, followed by SQL and Java. It also found that about 90% of front-end developers and 54% of back-end developers work with JS. In the US, UK, Germany, Japan employers say it is hard to hire a JavaScript developer.

Image source: DevCode

It is important to check experience, code samples or past works, surely, though you should start with defining what exact kind of JS developer you require. It depends on several factors.

  • What’s your product?

Is it a simple website with pretty much static content, a site with renewing data, or a big site with data storage, like e-shop? Because different skill sets could suit for each of those.

  • Do you start from scratch or have already started?

If your project is underway and there’s some code already, you will be hiring a JavaScript developer with knowledge of certain frameworks. For example, if the code is based on React Native. If you start from zero, you have to decide on a tech stack beforehand.

  • Is experience really crucial? Is a portfolio of all past activity more important to you than developer’s most recent area of experience?
  • What is the scope of project?

The amount of work, how long will it last, specific tasks. Writing a brief with provide context and purpose of a project can help as well, coordinating everyone’s efforts. Define your business goals and target audience, reasons for a project, mockups and infrastructure schematics if possible, deadlines, and budget.

Front-end, back-end, full-stack

Since JS is a dynamic and versatile language, it could be useful to separate front-end developers and back-end developers. Both share an expertise in JavaScript, specific skills will be different though. A front-end JS programmer works with graphic design and UI/UX, knows all three HTML, CSS and JS, and is able to create interactive forms, video feeds, call-to-actions, etc. A back-end JS developer handles website’s logic, databases, APIs and all server-side stuff. These guys have skills in Node.js, MongoDB, RESTful APIs, etc.

The rarest kind is a full-stack JavaScript developer, who would be skilled enough to handle both sides and build a whole website from nothing. Typically, with knowledge of the JS solution stack known as MEAN: MongoDB, Express.js, Angular.js and Node.js). But with rise of JS too many coders started promoting themselves as “full-stack developers”, so be cautious.

A general point here is being open-minded, as JavaScript is evolving very fast. Sometimes it would be safer to hire a JS developer who has recent active experience than one with skills but no code writing in past few months.

What should you look for in a JS developer? Definitely, asynchronous JavaScript among skills, teamwork and collaboration, code testing ability and knowledge of network security (certificates and protocols), all of which are good initial signs.

Hiring stages

Hiring a JavaScript developer, as a rule, is a four-step process, consisting of the following:

  1. Pre-screen by HR. The goal is to reject bad or inappropriate job applications. Out of those who seem to fit the job, check English and communication skills, personality and motivation. If candidates use cliches in resumes, like claiming skills without evidence, or make grammar mistakes, that’s a first warning.
  2. General interview. The goal is to check whether a candidate would fit the position and team. Find out as much as possible about his/her personality. How good a candidate expresses ideas? Does a candidate stick to his/her opinions or bends under superiors? And so on.
  3. Coding task. To inspect person’s ability to learn new technologies as well as skills in claimed area. Writing code is a straightforward task – if the result is robust and meets expectations, an applicant moves ahead. CTOs recommend that such task should be similar to company’s actual daily activities, thus more competent evaluation.
  4. Technical interview. First, verify the coding task, i.e. check if it was not copy-pasted from Internet or done by another person. Secondly, you can ask to write a code during this interview – to reveal actual programming skills. Something of a small riddle that requires 10-20 lines would be enough. Overall, the goal here is to unveil the thought process.

If a candidate passes all stages and you feel (s)he would fit, the firth and final stage is going to be hiring and signing a contract.

Interview questions

At this stage, better not spend time asking about smaller stuff (syntax, language quirks) and instead ask about big things, like architecture and paradigms. Things that could impact the whole project. Here are examples of some interview questions for JavaScript developers, besides naming tw paradigms:

  • What mistakes in JavaScript development have you faced most frequently? How did you handle them?
  • What is functional programming? What is function purity and function composition? Also, first class functions and lambdas?
  • What’s the difference between prototypal and class inheritance? Which one to use and when?
  • What is two-way data binding and what is one-way data flow? How are they different? What are the examples of each?
  • How monolithic and microservice architectures are different? What are pros and cons to each of them?
  • Why asynchronous programming is vital in JavaScript?
  • What front-end frameworks do you prefer and why?
  • What are closures in JS? Why and when you would want to use them?
  • How do you conduct code testing of your code? What tools would you utilize for those purposes?

Of course, there’s more, but you get the idea, stick to top-level issues. If a candidate is able answer and operate all terms confidently, he/she surely will be able to figure out syntax as well. Essentially, your task is to find out whether a candidate knows how build the whole application.

Coding task

A good way is to give out a couple of tasks that a potential JS developer should be able to finish in few hours, or a day at most. As said, such tasks better be close to the daily work of your team. Besides purposes of evaluation, this will show a candidate what kind of job awaits him if he/she gets hired. In other words, if you work with React.js, make the task about React, not Angular or Node.

If a person has no or little experience in a give framework/library, well, that’s their chance to shine, right? Most candidates for JS position claim to be fast learners, so let’s check this claim. If you don’t have the idea what coding task to prepare, you can look plenty on Internet, e.g. JavaScript exercises or typical interview exercises.

Let’s show one example. This is called “event delegation”, a scenario when you have to attach events to buttons or images, so when a user clicks it, a page would perform a certain action. Taking a to-do list as an example, the task is to add this functionality based on the following HTML code:

Image source: Freecodecamp

Often candidates attach an event listener to every item individually, which is fine for 4 elements, but not if there are thousands. You can also ask a person directly what the maximum number of elements is ok – not more than 10 is good for the most apps. In case an app ends up with hundreds of events, it would be better to attach one event listener to the container. Here is the proper code for the task:

Image source: Freecodecamp

The tricky part to any coding task is measuring solution quality. It also depends on whether you prefer a robust code result or few possible solutions with context. Are you ok with finding a mistake and how many would it take to reject a code? Bare in mind, that is reasonable to reject 3 out of 4 candidates based on the coding task. If you feel someone is close but not quite there to be hired, you can welcome such applicant to re-apply in few months.

Technical interview

Two point at this stage: coding task verification and writing code on the spot, accompanied by argumentation. Check the code and ask the reason behind specific classes, notations, error labels, modifiers, etc. Ask about reasons for such and such choice of class in CSS. This undoubtedly will help determine if a candidate had solid ground for his/her code.

In relation to writing code during the interview, you can be amazed how many candidates aren’t able to solve simple tasks on the spot. So, don’t ask too much, ask for algorithms with 10 lines of JavaScript. A simple small riddles like: a) add sorting and filtering to the coding task, b) write a function, c) re-factor a segment of code, etc. This group of technical JavaScript tasks compiled by Toptal can be handy.

Your purpose is to learn about the thought process, don’t pay too much attention to minor things or lexical knowledge. Also, have an alternative task in case a candidate is struggling with the first one. It should imply a different thought process and constructs to give a second chance. Some people are usually stressed out in interview situations, so be a calming presence and point to no time limit.

That said, a candidate JavaScript developer should demonstrate at least some basic coding and problem-solving skills. Someone who isn’t able to solve any tasks during technical interview is surely a no go.

Where to find

When you know what type of a JavaScript developer you should hire, when and how, the next aspect is where to find one. Placing ads on job sites and social networks (e.g. Reddit “for hire”  boards) is the most general option.

There’s also no shortage of freelance finder websites:

However, if you seeking a really talented JS expert for a long-term project/employment, think of more specialized places. First option is JavaScript themed conferences and events, such as International JS Conference in UK, JSHeroes in Romania, JSConf in Belgium, Smashing Conference in the USA, JS Fest in Ukraine.

Second option is IT-companies directories and industry-specific portals, which are more apt when you have specific criteria to hire a JavaScript developer. If you want to staff your projects cooperating with outsource companies, Clutch or Goodfirms offer plenty of choice.

Directories like Codementor, X-team, and since recently ThinkMobiles, also have useful tools for people yet undecided with the type of developers they need. For example, you can browse developer profiles and companies specializing in JS. For even deeper search, you may want to visit forums on Webdeveloper, Coding Forums or Stack Overflow.

The cost to hire a JavaScript developer

In terms of what you will have to pay a JS developer, be aware of salaries and hourly rates. JavaScript developers are paid very well, the average annual salary in the US, for instance, is ranging about $90K to $120K. As of March 2018, indicates the $110,000 annual salary in the USA, while junior JS developers get $67,000. The global median figure is a bit lower – $80,000 per year.

JS developers of all specialties (React developers, Angular developers, Node Developers, etc.) are always in high demand. Rates depend on skills, experience, region, and project scope. Average rates, according to Upwork, are $35-50 per hour, so you can expect a range between $200 and $800 to pay per day.

Image source: Indeed / March 2018

To be able to calculate the cost of hiring a developer, which largely depends on skill set, consider three types of programmers:

  • Basic front-end/back-end devs. With command of fundamentals like HTML, CSS, JS, jQuery, WordPress, MySQL. Average rate $30-$50.
  • Intermediate. Basic level plus skills in certain frameworks like Angular, Node, Meteor, server environments like AWS, etc. Average rate: $35-$100.
  • Pro/Full-stack. Combining skills in both front-end and back-end, command of MEAN and/or MERN stack. Average rate: $50-$150.   

Another cost factor is hiring a developer individually or hiring a software development agency. In short, the upside of agency is access to the whole team (devs, designers, testers, etc.) while the downside is overhead costs involved.

Summing up

Proven experience speaks for itself. Code samples, a portfolio or a blog, an account on GitHub or StackOverflow will tell more than a CV. Although, remember that even a talented JavaScript developer is not going to be a remedy for all your issues. Not all of them would produce a stunning design or use a specific framework right away.

Top JS experts would have an advanced proficiency, understanding of all nuances, problem solving skills. But to hire such talents one has to be well prepared, have a consistent approach and invest in the process. JavaScript is still a highly debatable programming language, being capable of many great things. We certainly hope this systematized material could be a useful foundation for your hiring process.

Get free estimation for your mobile app

Post your project or request a dedicated team - we'll quickly match you with the right experts.

8 sharings