Ranges by level
Below is the typical range: the lowest quarter and the highest quarter of values are dropped, leaving the middle. All amounts are take-home, after tax; the number of responses is in parentheses.
An important caveat to this table: the level is counted across the whole company, not within a single specialization. The sample includes developers, analysts, testers and other IT roles together. A separate breakdown for development is given below, for the market as a whole.
| Company | Junior | Middle | Senior | Lead |
|---|---|---|---|---|
| Avito | 56–138 (7) | 276–415 (71) | 386–464 (41) | 523–866 (15) |
| VK | 101–176 (11) | 223–358 (74) | 339–469 (92) | 434–558 (39) |
| Ozon Tech | 169–227 (24) | 228–328 (112) | 320–410 (104) | 448–541 (35) |
| Sber | 96–187 (80) | 206–327 (308) | 322–450 (155) | 408–708 (67) |
| T-Bank | 128–191 (104) | 206–293 (243) | 320–441 (133) | 418–612 (52) |
| Yandex | 61–179 (55) | 187–326 (262) | 313–481 (131) | 399–686 (43) |
| RWB (Wildberries) | 108–207 (20) | 205–325 (88) | 347–518 (76) | 413–631 (34) |
| Alfa-Bank | 104–153 (26) | 183–320 (88) | 324–421 (105) | 345–559 (40) |
| X5 Tech | 116–195 (10) | 187–330 (37) | 310–416 (46) | 383–481 (16) |
| Kaspersky | 222–229 (5) | 255–426 (25) | 381–503 (29) | 546–633 (9) |
| YADRO | 111–175 (16) | 203–279 (33) | 285–359 (27) | 402–503 (14) |
| MAGNIT TECH | 81–130 (7) | 156–298 (62) | 246–393 (46) | 366–535 (22) |
| MTS Web Services | 89–128 (21) | 130–233 (180) | 282–411 (56) | 290–477 (22) |
| Kontur | 72–133 (8) | 136–233 (67) | 218–378 (34) | 384–545 (14) |
The range for juniors at Avito is 56,000–138,000 ₽ on seven responses. Seven responses describe seven people, not a grade: the neighboring rows of the same table rest on a hundred responses and look quite different. Here the number in parentheses matters more than the range itself.
Where the biggest step is
Comparing the medians of adjacent levels, at nine companies out of twelve the first transition turns out to be the most valuable. But it is not a rule: at MTS Web Services, Kontur and T-Bank the next step paid more.
| Company | Junior → middle | Middle → senior | Senior → lead |
|---|---|---|---|
| Yandex | +148% | +54% | +39% |
| MAGNIT TECH | +146% | +39% | +46% |
| VK | +121% | +33% | +24% |
| Alfa-Bank | +119% | +36% | +19% |
| Sber | +87% | +51% | +32% |
| X5 Tech | +78% | +34% | +25% |
| RWB (Wildberries) | +76% | +66% | +8% |
| YADRO | +68% | +36% | +41% |
| Kontur | +66% | +70% | +53% |
| MTS Web Services | +54% | +88% | +29% |
| T-Bank | +48% | +54% | +34% |
| Ozon Tech | +46% | +29% | +32% |
A simple conclusion follows. At most companies the career step that pays off most comes at the beginning. After that the median raise is smaller, and the spread between companies is larger than the raise itself: on the move to senior it ranges from 29 to 88 percent.
The second consequence concerns negotiation. Bargaining over salary within a grade moves the amount within that grade’s range. Bargaining over the grade itself moves the whole range, and the grade is decided in the technical rounds. How that assessment works is covered company by company: Yandex, Avito, Ozon Tech.
Why the figures do not match each other
The same company looks different in different counts, and the gap can be substantial. The data is not wrong: different things are being counted.
| Quantity | What it includes |
|---|---|
| Take-home | Salary plus the regular bonus, after tax has been withheld. All ranges on this page are given in this quantity |
| Gross | The same before withholding. Larger than take-home by the amount of tax |
| Total annual income | Salary, bonus and stock together, divided by twelve. The largest quantity |
The difference between the extremes can be very large. An annual income of 5.5 million ₽ looks like 458,000 ₽ a month, but that is not the amount that arrives on the card: it already includes the bonus and stock, and the tax on them has not yet been withheld.
One cannot be converted into the other with a single rate. Since 2025 the rate depends on income accumulated since the start of the year, so the same salary can produce different take-home pay. Salary and a regular bonus are taxed on the general scale, and that can be calculated: a calculator with the progressive scale.
Company medians
A median across all employees exists for almost every company — including those where individual levels have too few responses for a range. It is useful for checking the order of magnitude and harmful as a benchmark for negotiation: it includes interns, juniors and people who joined many years ago on old terms.
| Company | Median | Responses | Junior → lead |
|---|---|---|---|
| Raiffeisenbank | 417,000 ₽ | 79 | — |
| Kaspersky | 389,000 ₽ | 79 | — |
| Avito | 387,000 ₽ | 144 | 89,000 → 563,000 |
| VK | 365,000 ₽ | 224 | 138,000 → 503,000 |
| X5 Tech | 329,000 ₽ | 114 | 147,000 → 442,000 |
| Alfa-Bank | 328,000 ₽ | 266 | 124,000 → 439,000 |
| RWB (Wildberries) | 327,000 ₽ | 225 | 147,000 → 465,000 |
| Ozon Tech | 325,000 ₽ | 283 | 197,000 → 492,000 |
| Sber | 290,000 ₽ | 632 | 140,000 → 525,000 |
| MAGNIT TECH | 284,000 ₽ | 139 | — |
| YADRO | 280,000 ₽ | 94 | 142,000 → 455,000 |
| Yandex | 278,000 ₽ | 533 | 103,000 → 550,000 |
| T1 IT Holding | 272,000 ₽ | 247 | 125,000 → 411,000 |
| T-Bank | 255,000 ₽ | 566 | 164,000 → 505,000 |
Yandex sits below Ozon and Avito in this table, although on the grade ladder it pays no less. The reason is most likely not salaries but composition: a median across all employees depends on what share of them are on lower grades, and open data does not show that share. Comparing companies by a single median is therefore meaningless in any case.
The market as a whole
To tell whether a range is high or not, it is worth comparing it with the market. The medians below are calculated across all companies at once, not only large ones.
| Specialization | Median | Responses |
|---|---|---|
| Backend developer | 250,000 ₽ | 7,656 |
| QA automation engineer | 230,000 ₽ | 828 |
| Frontend developer | 225,000 ₽ | 2,895 |
| DevOps engineer | 225,000 ₽ | 1,223 |
| Systems analyst | 222,000 ₽ | 2,474 |
| Full-stack developer | 198,000 ₽ | 1,224 |
| Project manager | 173,000 ₽ | 2,296 |
| Data analyst | 170,000 ₽ | 1,118 |
| Business analyst | 169,000 ₽ | 1,003 |
| Manual QA engineer | 133,000 ₽ | 1,545 |
| System administrator | 112,000 ₽ | 953 |
| Technical support engineer | 98,000 ₽ | 919 |
This shows how far large companies pull away from the market. The national median for a backend developer is 250,000 ₽, for a frontend developer 225,000 ₽. Avito’s median across all IT specializations is 387,000 ₽, VK’s 365,000 ₽. The populations differ, and no direct coefficient can be derived from this, but the gap is visible even after adjusting for the mix of specializations. It is what people go to big tech for.
The same market broken down by level, for backend only: junior 69,000–147,000 ₽ on 933 responses, middle 150,000–290,000 ₽ on 3,413, senior 274,000–427,000 ₽ on 2,166, lead 345,000–550,000 ₽ on 899. This is the baseline to compare an offer against if the company is not in the tables above.
Bonuses and how they are calculated
The bonus is included in the ranges above, but how it works is worth understanding separately: it is the only part of income that changes without a change of grade.
At Avito the bonus is paid twice a year based on the performance review — the half-year cycle itself is described in the company’s public playbook. The company does not publish the specific multipliers; according to employees’ accounts, a satisfactory rating gives 10% of half-year salary, which is about 1.2 monthly salaries a year on top of pay.
Ozon uses the same scheme with a review every six months, and the company itself says the bonus is proportional to results. It does not publish the multiplier grid; according to employees’ accounts, a “meets expectations” rating and below gives no bonus at all, “exceeds” gives 0.9 of a monthly salary, “significantly exceeds” gives 1.3, and the top rating gives 1.8. If so, the difference between an average and an excellent result is almost two monthly salaries a year.
When a figure cannot be trusted
All the data on this page comes from survey responses that employees fill in themselves, and no one verifies them against documents. In a large sample random errors cancel each other out; in a small one they do not.
There is no universal threshold beyond which a figure can be trusted: a large sample does not cure the bias in who fills in the surveys at all. But it does set the order of magnitude. The range for seniors at Avito rests on 41 responses, the range for leads at Ozon on 35, and the range for juniors at Avito on seven — three rows of very different reliability.
The same effect works in the other direction: for juniors at Avito the median comes out at 89,000 ₽ on seven responses — noticeably lower than both the company’s open vacancies and the ranges of the adjacent levels. It is a sample of seven people, and it describes those seven.
A figure is worth checking three ways at once. Does it match the company’s open vacancies? Does it match employee reviews? Are there enough responses? If at least two of the answers are no, the number is good only as a hypothesis.
One last thing that shows up in reviews: the starting offer and growth inside the company are different things. A strong offer at hiring does not guarantee the same raise a year later.
FAQ
What do G15 at Yandex or E4 at Avito mean?
These are internal grades, and each company has its own. The companies do not publish their ladders; according to open salary databases that collect grades from employees’ own reports, Yandex’s run from G14 to G20, Avito’s from E2 to E6, Ozon’s from 17 to 22 and Sber’s from L7 to L14. There is no official mapping to the familiar junior, middle and senior either, and the same word “middle” can mean different grades. So in negotiations it is more reliable to name the grade rather than the level, and to ask for the range for that specific grade.
How much does a middle backend developer earn in 2026?
Across the market as a whole, a typical middle backend developer earns 150,000–290,000 ₽, with a median of 221,000 ₽ on 3,413 responses. Large companies pay noticeably more: at Sber a typical middle earns 206,000–327,000 ₽, at Yandex 187,000–326,000 ₽, at Avito 276,000–415,000 ₽. A caveat on the company figures: they are calculated across all IT specializations at once, not only developers. All amounts are take-home, after tax.
How much does pay rise with a promotion?
The first promotion, from junior to middle, nearly doubles income: the median raise across twelve companies is 77%, and at Yandex and VK it exceeds one hundred percent. After that the median steps are smaller — about 45% on moving to senior and about 32% on moving to lead — but the spread between companies is larger than the step itself. At most companies the transition that pays off most comes at the start of a career, not at the end.
Why does the same company have different figures in different places?
Because different things are being counted. The amount on the card, the gross salary before tax, and annual income including bonus and stock are three different quantities, and the gap between them can be very large. Until it is stated what exactly was counted, the number cannot be compared with anything.
Can a gross amount be converted into take-home pay?
Not with a single rate. Since 2025 the rate depends on income accumulated since the start of the year, so the same salary can produce different take-home pay — for example, if the bonus fell in a different month or income came through several employers. Salary and a regular bonus fall into the same tax base and are taxed on the general scale. Payments in securities may be taxed differently.
How far can this data be trusted?
These are survey responses that employees fill in themselves, and no one verifies them against documents. Where a range rests on hundreds of responses, the order of magnitude is stable. Where it rests on seven, the range describes those seven people, not the company. The number of responses is shown in the tables next to each range — it is worth looking at before the amount itself.
