IT roles — demand and salaries
Which directions employers look for most, how much they pay by seniority, and what work formats they offer. Data from a live database of open jobs across CIS and Europe, updated daily.
Updated: 5/29/2026, 6:31:21 PM
Role demand — trend
Share of each direction in the total weekly job flow (in % of jobs with a stated role).
Which directions are in demand
Top-25 directions by number of open jobs.
| # | Direction | Jobs |
|---|---|---|
| 1 | Backend | 3,980 |
| 2 | Fullstack | 2,956 |
| 3 | Data | 2,129 |
| 4 | ML/AI | 1,498 |
| 5 | DevOps | 1,483 |
| 6 | Architect | 1,403 |
| 7 | QA | 1,210 |
| 8 | AI Engineer | 938 |
| 9 | Frontend | 926 |
| 10 | Product | 815 |
| 11 | PM | 805 |
| 12 | Security | 595 |
| 13 | Design | 481 |
| 14 | Platform Engineer | 378 |
| 15 | Mobile | 336 |
| 16 | Analyst | 216 |
| 17 | SRE | 201 |
| 18 | Embedded | 173 |
| 19 | Analytics Engineer | 86 |
| 20 | DevRel | 79 |
| 21 | GameDev | 25 |
| 22 | Blockchain | 7 |
Salary by role and level
Median monthly salary per direction × level pair. We show the number only when a cell has at least 5 jobs with a stated salary — otherwise it stays "—".
| Direction | Junior | Middle | Senior | Lead | Principal |
|---|---|---|---|---|---|
| Backend | $2,039n=54 | $4,788n=279 | $6,431n=1249 | $6,642n=66 | $8,656n=16 |
| Fullstack | $2,373n=32 | $5,250n=551 | $6,140n=914 | $9,193n=48 | $7,355n=13 |
| Data | $2,940n=55 | $5,250n=384 | $6,625n=802 | $10,080n=11 | $14,167n=7 |
| DevOps | — | $5,460n=170 | $6,720n=432 | $7,391n=27 | $8,182n=8 |
| QA | $2,275n=13 | $4,331n=218 | $5,250n=327 | $6,674n=16 | — |
| Frontend | $1,938n=38 | $4,375n=106 | $5,779n=365 | $4,528n=11 | — |
| AI Engineer | — | $6,195n=156 | $7,140n=267 | $12,965n=64 | — |
| ML/AI | $7,796n=15 | $5,040n=99 | $6,405n=250 | — | $10,507n=5 |
| Architect | — | $4,851n=41 | $7,350n=271 | $11,000n=7 | $11,908n=16 |
| Platform Engineer | — | $7,140n=28 | $7,350n=173 | $7,024n=6 | — |
| Product | — | $5,670n=69 | $6,008n=88 | — | $500n=7 |
| Mobile | — | $5,250n=71 | $6,300n=89 | — | — |
| Security | — | $4,500n=23 | $6,735n=132 | — | — |
| PM | $3,360n=15 | $5,460n=27 | $5,812n=73 | $9,488n=7 | — |
| Design | — | $4,200n=49 | $5,000n=22 | — | — |
| SRE | — | $4,125n=15 | $6,426n=56 | — | — |
| Embedded | $1,326n=5 | $6,300n=21 | $5,644n=39 | — | — |
| Analyst | — | $2,446n=8 | $2,717n=15 | $1,957n=9 | — |
| Analytics Engineer | — | — | $6,510n=15 | — | — |
| GameDev | — | — | $6,195n=6 | — | — |
Work format by role
Remote / hybrid / office share per direction (top-20 by number of jobs with a stated format).
Backend
2,162 jobs
Fullstack
1,804 jobs
Data
1,421 jobs
DevOps
859 jobs
Frontend
700 jobs
ML/AI
692 jobs
Architect
665 jobs
QA
638 jobs
AI Engineer
517 jobs
Product
409 jobs
PM
288 jobs
Security
283 jobs
Platform Engineer
262 jobs
Mobile
247 jobs
Design
171 jobs
SRE
149 jobs
Analyst
116 jobs
Embedded
54 jobs
Analytics Engineer
45 jobs
DevRel
35 jobs
Remote Hybrid Office
Demand rising and falling
Trend over time — which directions are growing and which are shrinking — will ship in mid-June 2026. We are accumulating a clean change history so the numbers are honest and not skewed by a recent database cleanup.
Want to match candidates the same way in your own agency?
Message Ekaterina — we will show matching on your job and tune the system to your agency.
Reach out to @ekaterinovikova →How we calculate these numbers
- Where the data comes from. 1000+ sources — Telegram channels and job boards across CIS and Europe for IT.
- What goes into the sample. Only live, open jobs. Non-IT directions (Sales, Marketing, HR, Support, Other) are excluded — this page is about IT roles.
- Salaries. All amounts are normalised to USD/month and obvious outliers are removed. For each role × level pair we show a median only if at least 5 jobs with a salary are available.
- Seniority levels. Junior / Middle / Senior / Lead / Principal — naming variants are normalised (e.g. "Mid" → "Middle").
- Work format. We count only jobs with an explicitly stated format (remote / hybrid / office). "Not stated" does not enter the sample.