Not enough seniors, or JavaScript developer salary statistics

6 min

Headz has a Telegram bot Headz Analytics. He monitors salaries in the IT industry in the 12 largest cities in Russia. We’ve compiled statistics for 2020 to take a closer look at how JavaScript developers are doing: we analyzed data on salary levels from juniors to seniors in several cities. For greater reliability, we looked at other sources – Yandex research and Habr Career, in order to get a kind of general picture. And here’s what happened.

Personnel hunger is not a myth

On average in the software development market, the situation with resumes and vacancies is as follows: in the open access we found 16,387 vacancies, for which 65,577 applicants apply. Average competition – 4 people per place.

At the same time, there are not enough JavaScript developers. Only 914 candidates apply for 1,716 jobs. It turns out that two companies are fighting for one person in the staff. Similar figures are shown and HH study together with Yandex.Praktimum (material of 2019 according to data from 2016-2018).

Note… Link to source Yandex research

In Yandex data, the competition (the ratio of vacancies to resumes) is in the range from 0.45 to 0.59. This is in line with our results – 0.53 or 914 resumes for 1,716 vacancies.

For comparison, statistics on the IT market as a whole.

Let’s go back to JavaScript developers and take a closer look. Middles and juniors are most looking for jobs (436 and 384, respectively). But the seniors seem to be employed: their number of the total number of applicants is only 10%. It is possible that good seniors are passed from hand to hand – they do not have time to reach the job platforms with their resume?

Distribution of resumes depending on the level.
Distribution of resumes depending on the level.

But if the seniors have practically no competition, and the companies are trying to get a specialist, then the juns themselves have to compete. On average, this is 1.7 people per vacancy:

This is what the competition looks like. Horizontal numbers - the number of resumes per vacancy.
This is what the competition looks like. Horizontal numbers – the number of resumes per vacancy.

As for the cities, there are no surprises here: most people are looking for work in Moscow and St. Petersburg – the competition is 0.66 and 0.64. The smallest number of job seekers is in Ryazan – 3 CVs, and in Tomsk, where there are 45 vacancies in open sources for 7 CVs.

Distribution of resumes by city.
Distribution of resumes by city.

In Kazan, there are 41 resumes for 59 vacancies.

City competition. The lowest is in Siberia.
City competition. The lowest is in Siberia.

Most vacancies and resumes are expected in Moscow, but there is no competition here either: 0.66 people per seat.

Vacancies and resumes in Moscow clearly.
Vacancies and resumes in Moscow clearly.

Let’s see the distribution of levels for some cities from 914 resumes that we found in the public domain.

Note… Not all cities are in the lists below, so as not to clutter up the article.


  • most of all in Moscow – 52 resumes;

  • in other cities the number of resumes drops significantly: in St. Petersburg 20, in Ufa – 6, and in Krasnoyarsk – 4;

  • in Kazan and Voronezh there is only one resume each;

  • and in Tomsk and Ryazan they are absent.


  • again, more resumes in Moscow – 180;

  • in St. Petersburg 134;

  • in other cities it is already several times less: in Kazan 19, in Nizhny Novgorod 12, and in Tomsk – 2;

  • in Ryazan not a single resume.


  • most of all in the capitals: in Moscow 214, in St. Petersburg – 121;

  • in Kazan and Novosibirsk, 21 CVs each;

  • the least in Ryazan – 3 resumes.

Average salaries, medians and corridors

According to our data, the average salary offer for a JavaScript developer is 110,000 rubles per month. Similar numbers are shown by a study by HH and Yandex (links above) – they got the figure of 114,900 rubles.

For comparison: Habr. Career research shows the average salary in the market – 113,313 rubles per month, and the median – 100,000 rubles. In general, all numbers are similar.

According to the GetIT agency, in Moscow the salaries for juns are 80-140,000 (depending on the level), for middlemen 160-220,000, for seniors 240-320,000. In St. Petersburg, the figures are about 15-20,000 less.

But the average numbers are not always true, so let’s also consider the medians and salary bands.

Screen of median salaries from Yandex research
Screen of median salaries from Yandex research

Let’s compare our data and Yandex research.

Suggestions for juniors are as follows.

  • According to our data, aspiring JavaScript developers are offered salaries ranging from 30,000 to 85,000.

  • According to Yandex, the median offer is 60,000 rubles.


  • According to our data, they offer wages from 67,000 to 110,000.

  • According to Yandex, the median offer is 150,000 rubles (we took data on specialists with 4-6 years of experience, but correct it in the comments if you should have taken a different range).

For seniors, the data gap is more significant.

  • According to our data, seniors are offered from 108,000 to 160,000.

  • Yandex says the median offer is RUB 218,000.

According to data from open sources, salary expectations differ markedly from reality. The graph shows how wishes exceed the offer.

A graph showing salary expectations and offers at different levels. On the right - what color each parameter corresponds to. Maximum salary expectations were highlighted in red: they stand out most clearly among seniors.
A graph showing salary expectations and offers at different levels. On the right – what color each parameter corresponds to. Maximum salary expectations were highlighted in red: they stand out most clearly among seniors.

Let’s decipher what’s on the chart:

  • juna want from 19,000 to 38,000;

  • middle from 78,000 to 126,000;

  • seniors – 144-222,000.

The biggest difference is for seniors – the top bar reaches 62,000. But Juns also stand out: either because of high competition, or because of self-doubt, they are ready to work for less money than employers offer.

But if you superimpose the Yandex data, which was discussed above, on ours, then an interesting conclusion appears that seniors have no high expectations, they just want as much as the market offers them. The second conclusion is that Yandex does not take data from open sources, so the numbers are different.

Note… In general, not all vacancies indicate the salary, while it is customary to bargain on the market, and we cannot always find out the real salaries from open sources. The situation is similar to the real estate market – we look at the ads for the sale of apartments (which can hang for months) and think that these are the prices “in the market”. But if these apartments are not being bought, then their price is not satisfied with something. At the same time, we do not know what prices the sellers and buyers of the apartments that were sold agreed on. Therefore, the idea of ​​the market from hanging sale announcements is not entirely accurate. Also with vacancies, the numbers are conditional, both from open sources and from others. Considering several sources, we are trying to create some kind of representation close to reality.

Salary expectations by city

Salary expectations and realities vary from city to city. The most ambitious developers live in Kazan: their expectations can reach 330,000 rubles a month, while the highest paid vacancy in the city suggests a salary of 166,000.

Salary expectations depending on the city
Salary expectations depending on the city
  • In Moscow, the minimum supply expectations start at 49,000, and expectations from 277,000.

  • In St. Petersburg, the range of expectations is 44-259,000, and offers are 47-189,000.

  • In Voronezh and Samara, the minimum offers in the open database are 30,000 rubles each. But even with such a salary, expectations are still lower – 27,000 and 24,000 each.

  • Interestingly, in Voronezh, the maximum expectation exceeds Moscow’s – 286,000.

  • In Samara, the maximum expectations and proposals are almost the same – 168,000 and 161,000 each.

  • They want the least in Yekaterinburg and Ryazan – 19,000 and 20,000 each. Although developers can be paid twice as much – 44,000 and 40,000, respectively.

Developer suggestions: maximum, minimum and market average.

For example, the proposed average salary the highest in Moscow is 138,000 rubles. Closer to this value are St. Petersburg and Kazan – 122,000 and 116,000. The smallest average in Nizhny Novgorod is 67,700. Ryazan and Voronezh are close to it – 79,000 and 93,000 each.


  • Companies clearly lack JavaScript developers, especially middleware.

  • The salaries of these specialists do not differ from the average situation in the IT market.

  • It is not always necessary to go to the capital for the sake of a high salary: Kazan clearly illustrates this.

  • Statistics from one source are not accurate, so we use several.

JavaScript developers, you have the floor. How does the data match your reality? We are waiting for your opinion in the comments.

You can also read our materials on IT salary statistics, for example, “Figures in IT for the winter 2019-2020, and find a job at Subscribe to Telegram channelto stay tuned for new articles and vacancies. You can check all the data from the article in botwhich takes all information from open sources.


Leave a Reply