Список «что должен знать backend» из вакансий бесконечен: десять языков, три облака, Kafka «с нуля», Kubernetes «в проде». Так рынок пишет вишлист. Так нельзя собирать свой план и нельзя мерить грейд. Вакансия смешивает must и wish; ваш навык — то, чем готовы закрыть первую неделю и тестовое.
Ниже — рабочая карта junior / middle / senior для CIS IT 2026 без культа инструментов: ядро, данные, поставка, как проверять себя, два примера «готов / не готов» и что делать с дырами. Резюме роли — в резюме backend-разработчика. Вход в профессию — в как стать backend-разработчиком.
Коротко:
- Грейд — про зону ответственности, не про число фреймворков в skills.
- Junior: один язык, HTTP, SQL, отладка, Git, честный маленький прод-контур.
- Middle: свои сервисы в проде, данные без сюрпризов, деградация, ревью чужого.
- Senior: границы системы, инциденты, договорённости, рост людей — не «знал ещё Terraform».
- Сверьтесь с живыми требованиями в вакансиях backend и с формулировками в разборе резюме, если файл уже есть.
Как читать вакансии, а не коллекционировать стек
Откройте десять объявлений одной линии: Python-API, Java-сервисы, Go — не все сразу. Выпишите пересечения must. Всё, что встречается раз, — wish или чужой легаси. По этому каркасу учитесь и пишите CV, не по сумме всех слов.
Облако и k8s в junior-вакансии часто копипаст. Спросите себя: вы будете деплоить свой сервис в готовый пайплайн или строить платформу? Второе — другая роль, см. навыки DevOps.
Зарплату и грейд в голове не склеивайте с мифическими медианами. Ориентир — фильтры грейда и стека в каталоге, плюс разговор на экране: ожидания по зарплате.
Ядро, которое не зависит от моды
Язык: синтаксис плюс идиомы, ошибки, пакеты, тесты. Не «знал 4 языка по чуть-чуть». HTTP: методы, коды, идемпотентность, таймауты, что видит клиент при 500. Данные: транзакции, индексы, N+1, миграции без страха. Отладка: логи, воспроизведение, не «перезапустил — прошло».
Git и ревью: осмысленный diff, не «коммит update». Наблюдаемость на своём контуре: метрика или лог, по которому вы сами поняли сбой. Безопасность гигиена: секреты не в репозитории, проверка входа, SQL-инъекции — не курс CISSP.
Это ядро спрашивают на скрининге чаще, чем новый веб-фреймворк. Вопросы типичного интервью — в что спрашивают на интервью backend и в разборе собеседований.
Отдельно про ИИ-инструменты в 2026-м. Умение набросать бойлерплейт не заменяет понимание транзакции и таймаута. Если пользуетесь генератором кода — навык в том, чтобы поймать тихую ошибку: повтор списания, утечка секрета, N+1, который «хорошо выглядит». Писать «ChatGPT» в skills бессмысленно. Писать «ловлю галлюцинации в SQL и ревью» — если правда ловите, и это видно по пулям.
Контракт API — часть ядра middle: версия, обратная совместимость, что видит клиент при 4xx/5xx, идемпотентность POST, который клиент повторит. Junior может закрыть счастливый путь. Middle объясняет несчастливый. Senior решает, какой несчастливый путь допустим для продукта. Эту лестницу не заменит знание семи брокеров.
Junior: что достаточно
Один основной язык и один фреймворк, на котором вы собирали API. CRUD с валидацией и ошибками, не только счастливый путь. SQL: выборки, джойн, объяснение плана «почему медленно» на учебной таблице. Тесты хотя бы на доменную логику. Docker как «собрать и запустить», не как оркестрация кластера.
Чего junior ещё не обязан: проектировать шардирование, писать свой брокер, админить Kubernetes, быть дежурным по чужой платформе. Если это в вакансии как must — это не junior или копипаст. Как собрать доказательство без стажа — в резюме без опыта.
Копипаст k8s в junior-оффере не обязан стать вашим планом на квартал. Спросите на скрининге, будете ли вы деплоить в готовый пайплайн. Часто да. Тогда Docker и понимание манифеста важнее своего кластера.
90 дней: довести один сервис до состояния «можно показать сбой и фикс», README, тесты на главный инвариант. Не десять туториалов.
Типичная ошибка входа: три фреймворка за квартал и ни одного сервиса, который падает предсказуемо. Работодателю нужен человек, который починит 500, а не человек, который называет FastAPI, Django и Flask. Один контур с миграцией, логом и тестом на инвариант закрывает больше junior-вакансий, чем «знакомился со стеком». Смотрите вход в каталоге backend и отдельно в junior-ролях.
Middle: что меняется
Вы держите контур в проде: очередь, ретраи, идемпотентность, деградация, когда соседний сервис мёртв. Данные: миграции на живом, индексы под реальные запросы, понимание, когда кэш врёт. Ревью: ловите гонки и дырявые контракты, не стиль скобок.
Оценка задач: называете риски, не только часы. Онбординг новичка на свой кусок. Инцидент: участие, постмортем в пределах своей зоны, без театра «я всё спас».
Ещё маркер middle: вы можете сказать «этого в скоуп не берём» и объяснить почему — данные, срок, чужой контракт. Junior обычно берёт всё, что дали. Умение сузить задачу — часть грейда, её видно в резюме фразой про вырезанный скоуп, не про «работал в команде».
Стек шире, но не бесконечен. Новая библиотека — если закрывает задачу, не ради CV. Как не раздувать skills — в как указать стек и навыках в IT-резюме. Если библиотека появилась только в вишлисте вакансии, её место — вопрос на созвоне, не шапка файла.
Senior: не чеклист технологий
Senior виден по последствиям: вы задаёте границы сервиса, контракт с соседями, что не делаем. Инциденты класса «почему система так устроена». Менторство и сложные компромиссы (срок / качество данных / стоимость).
Инструменты — следствие. Terraform и k8s могут быть, если вы реально ими закрываете поставку. Могут не быть, если рядом сильная platform-команда, а вы глубоко в домене. Не дописывайте platform lead в CV ради грейда. Рост middle→senior — в как вырасти в senior.
Пример: «ещё junior» vs «уже middle»
Ещё junior. Собрал API заказов: создание, список, статус. Тесты на валидацию. Docker-compose поднимает Postgres. Продовый сбой не ловил: стенд учебный. Kafka в skills нет — честно. Готов к тестовому на CRUD + SQL.
Уже middle. Тот же домен, но вебхук оплаты идемпотентен, очередь не теряет повтор, при недоступности антифрода заказ уходит в «ручную проверку», а не в 500. Миграция добавляла индекс без даунтайма окна. В ревью ловил N+1 в списке. Дежурил по своему сервису, не по кластеру.
Разница не в слове Kafka. Разница в проде, контракте ошибок и чужом коде. Так и пишите в резюме пулями, не списком фреймворков — как описать опыт.
Как проверять себя без самообмана
Возьмите свой последний контур и ответьте вслух: что ломается при таймауте соседа, где дубль, какой запрос самый тяжёлый, как откатить миграцию, где секрет. Если ответы «не знаю, это делал DevOps» на всё — зона уже, чем титул.
Тестовое и live-coding проверяют ядро. Как думать вслух — в live-coding. Не заменяйте это сертификатом облака.
Fullstack-ширина не отменяет backend-ядра. Если закрываете ещё экраны — отдельная честная пометка, см. навыки frontend и резюме fullstack.
90 дней, если дыры есть
Выберите одну дыру, которая повторяется в вакансиях вашего круга: SQL, тесты, очереди, наблюдаемость. Закройте её на своём контуре или учебном сервисе с README. Не открывайте параллельно три языка.
Раз в две недели сверяйте must из трёх новых вакансий — рынок сдвигается, вишлист нет. Ищите роли в каталоге backend, не в случайных «Java+Go+Rust».
Как класть грейд в резюме и не врать себе
Карта навыков нужна, чтобы выбрать вакансии и план учёбы. В CV попадает выборка: зона ответственности плюс стек, который защитите. Junior с честным контуром проходит чаще, чем «middle» с простынёй Kafka без инцидента.
Перед/после пули:
Было: «Разработка микросервисов на Python, работа с Docker, Kubernetes, Kafka, Redis, PostgreSQL, AWS».
Стало: «Сервис статусов заказа: идемпотентный вход с вебхука, очередь ретраев, при недоступности антифрода — статус “ручная проверка”, не 500. Дежурил по этому сервису. k8s — деплой готовым пайплайном, не админ кластера».
Вторая пуля позволяет оценить грейд за 20 секунд. Первая — нет. Стек при этом не исчез: он внутри задачи и в skills группами. Раскладка — в как указать стек.
Самопроверка на неделю. Запишите ответы и не подглядывайте в документацию в первый проход: как откатите миграцию; что увидит клиент при таймауте 3 секунды у соседа; где в вашем API повтор безопасен; какой запрос самый тяжёлый; где лежит секрет. Дыры — план, не стыд. Стыд — титул Senior при пустых ответах.
Для CIS-удалёнки в 2026-м отдельный навык: письменный разбор инцидента без созвона в 3 ночи по всем поясам. Если умеете — покажите пулей. Если нет — учите на своих дежурствах, это часто must сильнее очередного брокера.
Summary и заголовок должны совпасть с картой: не «senior backend», если зона — свой CRUD без продакшен-сбоев. Формула абзаца — в как написать summary. После правки прогоните файл через разбор резюме.
Частые вопросы
Нужно ли знать два языка?
Не как must junior. Второй — если команда на нём или вы читаете легаси. Навыки «Hello World на пяти» в CV вредят.
Обязательны ли микросервисы?
Нет. Монолит с чёткими модулями и транзакциями часто сложнее для junior, чем картинка из пяти квадратиков. Пишите то, что было.
SQL или ORM — что важнее?
Оба: ORM для скорости, SQL когда ORM врёт. На middle без SQL вас разберут запросом.
Стоит ли учить Kubernetes, чтобы стать middle?
Только если ваши вакансии это must и вы будете этим пользоваться. Иначе очередь, данные и контракты дадут больше.
Как отличить middle от senior на рынке CIS?
По зоне: свой сервис vs система и люди. Титулы компаний плавают. Смотрите описание задач в объявлении, не слово Senior в шапке.
Нужно ли тащить все навыки в резюме?
Только те, что готовы защитить. Карта грейда — для учёбы и отбора вакансий; CV — выборка. Правка файла — в разборе резюме.
Что сделать сейчас
Выпишите must из пяти backend-вакансий одной линии. Отметьте напротив: готов дебажить / касался / нет. Закройте одну дыру на контуре за две недели, а не десять курсов.
Перепишите три пули опыта языком ответственности, не языком библиотек. Сверьте с вакансиями backend и прогоните CV через разбор резюме. Если файл кричит Senior, а ответы про таймаут пустые — правьте грейд в заголовке раньше, чем стек. На ближайший скрининг заготовьте один сервис: что ломается при 500 соседа, где дубль, как откатить миграцию. Это важнее нового названия фреймворка в skills.