Python developers’ salaries: the biggest salaries are not in Moscow, but there are no seniors in Voronezh

Python developers can be divided into three groups. In the largest, there are specialists whose salary expectations are lower than the companies’ proposals. In the second – those who want to receive more than they are willing to offer. And there are very few developers whose expectations match the proposals. The division does not depend on the level of the developer, rather on the city, because in each of the 3 groups there are junes, middle and seniors.

Why did we decide so? With our Telegram botand we collected statistics of job seekers’ expectations and real salaries from surveys, as well as data from job sites. We collected information in several cities: Moscow, St. Petersburg, Kazan, Nizhny Novgorod, Novosibirsk, Voronezh, Samara, Yekaterinburg, Tomsk, Ryazan, Ufa and Krasnoyarsk. We collected data, analyzed it a little and got that there are no seniors in Voronezh, abnormal salaries in Ufa, and djuns often underestimate themselves. The rest of the results, numbers and graphs of Python developers salaries for 2020, in the article.

June: lowest expectations in Yekaterinburg

The general tendency of Juns is that they underestimate their capabilities and expect less than they can be paid.

Chart with expected salaries and offers from companies. Blue columns – expectations, yellow – company proposals

For example, the maximum difference in expectations and reality is in Moscow, St. Petersburg and Yekaterinburg.

A candidate in Moscow can receive 27,000 rubles more than he wants, and in St. Petersburg – up to 20,000. The biggest difference in Yekaterinburg is that the developers do not expect to receive more than 41,000 rubles. While companies are willing to pay up to 70,000 rubles.

In Tomsk, Ryazan and Krasnoyarsk, the June expectations almost coincide with the offers.

  • The salary bracket of employers in Tomsk for June is from 27,000 to 45,000. And the developers want only 1,000 rubles more – from 28,000 to 46,000 rubles.

  • In Ryazan, employers offer a wider corridor – from 26,000 to 44,000 rubles. But the difference between the Juns is also greater – the real maximum salary is 3,000 rubles higher than their expectations. Here the Juns have more room for maneuvers.

  • The developers from Krasnoyarsk were not very lucky. They want to receive from 29,000 to 48,000 rubles, but they are offered 2 to 6,000 rubles less.

Middle: in Voronezh least expected

The situation with salary expectations is more complicated for the middle ones than for the juniors. Three groups can be distinguished here:

  • the expectations of the former are greatly underestimated;

  • in the second, the minimum expectations are lower than the proposed salaries, but the maximum ones are higher;

  • Developers in the third group are offered significantly less than they would like.

Chart with expected salaries and offers from companies. Pink – offers, blue – expectations.

Midles from Moscow, Kazan, Voronezh, Samara, Yekaterinburg, Ufa and Krasnoyarsk can ask for more money – companies are ready to pay.

The biggest difference between expectations and offers is in Voronezh. Here, middle-level Python developers can receive from 95,000 to 155,000 rubles instead of the expected 51,000 to 86,000 rubles. The difference between the minimum expectations and the maximum offers is 104,000!

Samara and Ufa are the next cities in terms of the gap between the expectations of middles and the offers of companies. Developers from these cities can receive 56,000 rubles more than they want.

The smallest gap between expectations and offers is in Krasnoyarsk. Here, middlemen are offered from 85,000 rubles to 140,000 rubles instead of the expected 71,000 rubles – 118,000 rubles.

Middlemen from St. Petersburg and Novosibirsk have a difficult situation with the salary corridor.

Developers in Novosibirsk are ready to work with a salary of 80,000 rubles or more. At the same time, companies are willing to pay 104,000. In St. Petersburg, the difference is 4,000 rubles. But the maximum salaries are about 10,000 less than the developers would like.

Midles from Nizhny Novgorod, Tomsk and Ryazan receive much less than they would like.

The strongest gap between the expectations and proposals of companies in Tomsk – the difference reaches 56,000 rubles. This situation is also surprising because there are 7 times more job offers than developers.

The smallest gap between expectations and offers is in Nizhny Novgorod. Here companies are ready to pay from 83-138,000 rubles instead of the expected 105-165,000 rubles.

Seniors: the highest salaries are not in Moscow

Seniors can be divided into two large groups – those who want more than what is offered, and those who grossly underestimate the potential salary.

Chart with expected salaries and offers from companies. Blue columns are expectations, green are offers.

The first group includes developers from Moscow, St. Petersburg, Kazan, Nizhny Novgorod and Ryazan.

  • The biggest difference between companies’ expectations and offers is in Ryazan and Kazan. Here, employers can pay 50,000 less, on average, than developers want.

  • The smallest gap is in Nizhny Novgorod. Here they expect 145,000, and may receive – 134,000.

The second group includes developers from Novosibirsk, Samara, Yekaterinburg, Ufa and Krasnoyarsk. The opposite is true here.

Seniors from Ufa underestimate either themselves or the salary opportunities of companies more than others. They would like to receive from 137,000 rubles, and companies are ready to offer salaries from 231,000 to 289,000 rubles. In Moscow, these same specialists are ready to pay from 185,000 to 224,000 rubles.

But, perhaps, the developers assess themselves adequately, and such salary corridors are associated with the fact that there are almost no jobs in Ufa – single vacancies cause huge surges in statistics. This creates an “anomaly” in Ufa when the salaries of Python developers at the senior level in Ufa are higher than in Moscow

The expectations of the developers from Krasnoyarsk are closest to the real proposals. Companies are ready to offer only 5,000 – 8,000 rubles more.

Voronezh stands out among all cities. Here the companies are ready to offer seniors 135,000 – 165,000 rubles. But there is no one to offer. Apparently, the developers from Voronezh prefer to work in other cities.


  • Developers of any level who work in Ufa, Yekaterinburg, Voronezh, Novosibirsk and Samara can potentially get more. Companies are willing to pay.

  • In Ryazan and Nizhny Novgorod, developers are offered less than they would like. It is worth considering whether it is necessary to look for work in these cities?

  • The situation is similar in Tomsk: junam and middle lambs are offered here less than they would like. But the seniors can be offered more.

  • In Moscow, Kazan and St. Petersburg, it is profitable to work for juniors and middle-class people – they can be offered more. But the seniors should think about whether they agree to receive a few tens of thousands of rubles less every month.

  • Deficient supply causes anomalies. There are much fewer vacancies in Ufa than in Moscow – 2 versus 105, therefore, unexpectedly, seniors from Moscow are not the highest paid Python developers. Here they are ready to pay up to 224,000 rubles. And in Ufa, these same specialists are offered salaries of up to 289,000 rubles. But this is most likely an anomaly.

Does the salary data match your situation? If you want to know how much employers will offer you on the market, use our Headz Analytics @GetIT salary botExpertbot. To get hot offers then follow the link to the service or track vacancies in Telegram channel

Similar Posts

Leave a Reply Cancel reply