Зарплата backend-разработчика сильнее зависит от рынка найма, чем от языка в резюме. Один и тот же middle на локальном трудовом, на удалённом B2B в европейскую команду и после релокации живут в разных вилках. Вторая ось — объём: CRUD под ревью, сервис с дежурствами или единственный на платежи. «Средняя по странам в 2026» эти оси склеивает и поэтому почти никому не помогает.
Ниже — что движет вилку, как сравнивать гео без фальшивых медиан, как собрать личный диапазон по живым вакансиям и как не смешать net, gross и налог ОАЭ в одной фразе. Цифры — только из вашей выборки в backend-вакансиях и соседних гео-фильтрах.
Коротко:
- Грейд и зона вреда двигают деньги сильнее, чем ещё один фреймворк.
- Локальный трудовой, удалёнка на зарубеж и релокация — три пояса, не одна карта.
- Финтех, highload и data-intensive обычно дороже внутренних порталов; домен проверяйте по тексту, не по логотипу.
- Валюта и налог превращают одинаковую «грязную» шапку в разный месяц жизни — особенно трудовой ЕС vs B2B vs ОАЭ.
- Личную вилку считайте по 15–20 актуальным слотам одного сегмента; на скрининге — диапазон с форматом.
Что покупают под backend
Язык (Java, Go, Python, Node, C#) — фильтр поиска, не ценник. Ценник — риск простоя, данных и интеграций.
- Сервис под присмотром. Фичи, ревью, узкий контур. Ошибка чаще в сроке, чем в деньгах компании.
- Владение контуром. Оценка, инциденты, границы API, договорённости со смежниками. Ошибка бьёт по продукту.
- Критичный домен. Платежи, идентичность, биллинг, очередь, которая не имеет права молча потерять событие. Ошибка бьёт по деньгам и комплаенсу.
Грейд — перевод этого вреда на шкалу найма. Junior с хорошим Python не равен middle в клиринге. Как устроен нелинейный скачок: зарплаты по грейдам. Python-ветка отдельно, если язык — ваш якорь поиска: вилки Python.
Оси вилки кроме страны
- Грейд и единственность. «Единственный backend» в стартапе часто выглядит как senior-вред за middle-title. Читайте объём.
- Стек как эксплуатация, не как список. Очереди, транзакции, наблюдаемость, миграции. Чистый CRUD на курсовом ORM режет зарубежный пояс.
- System design на практике. Не круги на доске ради кругов, а умение ограничить scope и пережить чужой даунстрим.
- Английский и пояс. Разбор инцидента и RFC письмом. Без этого слоты Европы и США в каталоге вам почти не принадлежат.
- Формат. Трудовой, B2B, контракт. Онкол «входит в ставку» на B2B — скрытое обрезание.
- Дежурства. Как в DevOps, только чаще недоговорённые. Фиксируйте ротацию до цифры.
Гео: как сравнивать, не выдумывая среднее
- Удалёнка на зарубеж из СНГ. Часто выше локального рынка при том же грейде, если пояс и язык закрыты. Смотрите удалёнку и при необходимости сегмент слотов с высокой вилкой в каталоге — как фильтр, не как обещание вашей медианы.
- Европа. Страна команды меняет налог и вилку сильнее, чем разница Java vs Kotlin. Юг, восток, центр, острова — не один рынок. Ориентир: вакансии в Европе. Не усредняйте.
- США. Верхние вилки и верхняя воронка интервью. Вакансии в США. Цифру оттуда нельзя переносить на B2B без их процесса.
- ОАЭ. Часто обсуждают как пояс, где подоходный налог на трудовой пакет устроен иначе, чем в ЕС. Это фактор месяца жизни, не «автоматически самые большие оклады мира». Смотрите живые вакансии в ОАЭ и читайте договор: что с релокацией, жильём, медицинкой, испытательным. Не цитируйте чужие пороги и не путайте оффер «на руки» с пакетом, где часть — allowance.
Стоимость жизни и налог считайте до звонка, не в уме под давлением. «1500» без валюты и формата — не ответ, это повтор материала про ожидания по зарплате.
Как сравнивать пояса без фальшивой «средней зарплаты страны». Возьмите один и тот же грейд и стек, две выборки по 8–10 слотов: например удалённый B2B в европейскую команду и локальный трудовой. Для каждой — медиана только внутри. Потом переведите оба в месяц жизни: отпуск, больничные, бухгалтерия, оборудование, налог. Разница — ваш реальный разрыв рынков, не цифра из обзора. Если одна выборка тонкая (мало вилок в тексте) — не додумывайте, расширьте фильтр или пометьте «мало данных», не подставляйте US-оклады «для плотности».
ОАЭ в этой логике — четвёртый столбец, если вы туда реально идёте: трудовой пакет, allowance, жильё, срок контракта. Сравнивать «оклад в шапке Дубая» с «B2B на руки в Тбилиси» без расшифровки пакета — способ обмануть себя на десятки процентов, даже без единой выдуманной медианы по стране.
Как собрать личную вилку
- Сегмент: язык/стек, грейд, домен, договор, пояс, готовность к онколу.
- 15–20 актуальных backend-слотов с фильтрами; добавьте Европу, США или ОАЭ, если это цель, не «для справки».
- Таблица: вилка, домен, единственность, дежурства, валюта, gross/net, тип договора.
- Медиана сегмента. Не мешайте внутренний HR-портал и платежный шлюз.
- Нижняя — отказ. Верхняя — слот с вредом, который вы уже можете защитить фактами.
Пустые тексты без задач выкидывайте. Как читать обязательное, желательное и красные флаги: описание вакансии между строк.
Язык в фильтре каталога — способ сузить выдачу, не способ узнать «сколько платят Java vs Go». Две выборки на разных языках внутри одного домена и грейда имеют смысл, если вы реально готовы к обоим. Если Go вы не тянете на интервью, его вилки вам не принадлежат: это чужой пояс с красивой шапкой. То же с «highload» в title при задачах про админку склада.
Слоты из фильтра высокой вилки кладите в отдельный лист. Это верхняя полка каталога, полезная как карта, куда рынок умеет платить, бесполезная как обещание вашего оффера. Смешение верхней полки с вашим сегментом завышает медиану и ломает нижнюю: вы начинаете стыдиться нормального middle-слота.
Скрипт: строка таблицы из объявления
Вакансия: middle backend, Java, платежи, удалёнка, вилка в евро, «дежурства редкие». В сегмент middle Java финтех беру. «Редкие» не верю до вопроса про квартал инцидентов. Верх вилки не ставлю якорем, если в тексте ещё и «единственный на контур» — это уже другой объём.
Соседнюю вакансию «backend, лендинги + WordPress + немного PHP, офис, локальная валюта» в эту медиану не кладу.