Кажется, что senior — это просто "ещё немного опыта". Но нет. За десять лет в индустрии я видел десятки отличных мидлов, которые так и остались "чуть ниже потолка" — не потому что им не хватало знаний, а потому что им не хватало чего-то другого. Попробуем честно разобраться, что именно мешает переходу, и почему "умный код" не всегда делает тебя старшим.

Миф о "следующем уровне"

Я помню, как мой друг Лёша (прекрасный Java-разработчик) однажды сказал:

“Ну всё, я переписал три микросервиса, знаю Kafka, Docker и Spring Boot — думаю, пора в сеньоры.”

Прошло два года. Лёша всё ещё middle. И, честно говоря, теперь он сам не уверен, хочет ли дальше.

Мы часто воспринимаем слово senior как награду за выслугу лет. Но индустрия давно перестала повышать "по времени". Сегодня техническая сила — лишь половина пути. Вторая половина — это способность быть взрослым инженером: понимать контекст, предвидеть, спорить грамотно, а не громко.

Задумывались ли вы, почему порой продвигают не самого "умного", а самого “понятного”? Почему архитектор может писать "менее чистый" код, но к нему прислушиваются?

Когда знания перестают работать

У middle-разработчика есть проклятие — он уже слишком умён, чтобы не замечать чужие ошибки, но ещё не достаточно мудр, чтобы не пытаться исправить все сразу.

Сколько раз вы сталкивались с таким сценарием:

def process_order(order):
    if not order.customer or not order.items:
        raise ValueError("Invalid order data")
    
    total = sum(item.price for item in order.items)
    if total < 0:
        raise ValueError("Negative total")

    # логирование каждого шага
    logger.info(f"Order processed for {order.customer}")
    return total

Код вроде идеальный: всё чётко, типы понятны, покрытие тестами есть.
Но вот проблема — никто не думал, что этот кусок используется в десяти местах, где логирование уже реализовано выше.

Senior заметит не то, как написано, а то, где и зачем это написано.

Мидлы часто сосредоточены на правильности, но не на контексте. Они строят идеальные конструкции внутри своих модулей — а потом страдает производительность всей системы, потому что кто-то не посмотрел за границу файла.

Senior не "умнее", он шире.
И это не про архитектурные диаграммы — это про привычку смотреть на последствия.

Техническая зрелость ≠ сложный стек

Есть странная мода: чтобы стать senior, нужно "знать больше технологий".
И вот ты открываешь резюме:

Java, Kotlin, Go, Rust, Docker, Kubernetes, Terraform, AWS, Kafka, ELK, Prometheus, Redis, PostgreSQL, MongoDB, RabbitMQ, GraphQL, gRPC, React (да, почему бы и нет).

Но когда просишь показать, как эти технологии между собой живут, начинается неловкая пауза.

Настоящая зрелость — в том, чтобы уметь сказать "нет".

Я участвовал в код-ревью, где коллега решил "оптимизировать" сервис: заменить стандартный пул потоков на кастомный с хитрым планировщиком. На бумаге — круто. В реальности — получили блокировки, которые потом неделю отлаживали.

Код выглядел как произведение искусства, но задачу усложнил втрое.

Senior отличает не знание фреймворков, а умение держать код в руках.
Не писать "умно", а писать безопасно, предсказуемо и поддерживаемо.

Парадокс в том, что чем старше разработчик, тем чаще он пишет скучный код.
И тем выше за него платят.

Почему "хорошие" мидлы застревают

Это, пожалуй, самая болезненная часть.

Мидлы, которых не повышают, — обычно лучшие в команде исполнители.
Они надёжные, пунктуальные, технически сильные. Но у них часто есть одна общая черта — они изолированы в своей компетенции.

Они решают задачи, но не управляют проблемами. Делают !в своём квадрате!, но не связывают кусочки системы в единое целое.

Один мой знакомый backend-разработчик писал модули для биллинговой системы. Всё шло идеально, пока однажды не сломалась интеграция с CRM. Он починил, но сказал:

"Это не моя зона ответственности. Пусть CRM-команда разбирается."

И в этот момент стало ясно, почему он так и останется middle: он пишет код, но не несёт систему.

Senior не потому senior, что знает больше — а потому что думает за других.
Видит, где система треснет, даже если не трещит.
Умеет не просто сказать "я сделал", а "теперь всё работает".

Как понять, что ты дорос (и что мешает признать)

Есть странный феномен — "почти senior".
Это когда разработчик технически готов, но психологически — нет.

Он боится ответственности. Боится сказать "давайте по-другому", если решение предлагает тимлид. Боится публичного кода, боится быть неправым.

Если вы сейчас подумали: "Да, это про меня" — поздравляю. Это уже шаг вверх.

В какой-то момент карьера перестаёт быть про код. Она становится про доверие.

Хочешь проверить себя?
Представь, что завтра тебе дадут ревью чужой архитектуры, и ты должен сказать "нет".
Умеешь ли ты это сделать спокойно, аргументированно, без конфликта, но с уверенностью?

Если да — значит, ты уже на пороге.

Финал: старшинство — не звание, а ответственность

Мой друг Лёша всё-таки стал senior.
Не потому что выучил ещё один фреймворк.
Он просто начал думать не как исполнитель, а как владелец продукта.

Senior — это не "больше кода". Это "меньше хаоса".
Не "умнее всех", а "спокойнее всех".
Не "тот, кто прав", а "тот, кто слышит".

И если ты читаешь это и чувствуешь, что стоишь на пороге — возможно, пора просто перестать доказывать и начать понимать.

Потому что senior — это не про синтаксис. Это про зрелость.

Комментарии (3)


  1. beasty4ever
    05.10.2025 12:31

    Как мне кажется основная причина в том что бизнесу их просто столько не нужно,и он всеми силами пытается за счёт стафревью удержать людей на мидл позиции. Почему же так:

    • Использовать синьера чтобы решать задачи где достаточно мидла это дорого. А синьерных задач на всех может и не хватать.

    • Несколько синьеров в команде начинают конфликтовать по тому что за счёт синьерности имеют влияние на конечное решение.

    • Общая засиньеренность в ИТ, их накопилось много за прошлые годы, и работодатели начинают обесценивать их опыт (обычно оценивают последние 5 лет опыта, если у вас опыта 10-20 лет это ваши проблемы, нам он не нужен).

      Синьер видя эту ситуацию на рынке тоже начинают ей пользоваться, пряча экспертизу притворяясь джуном или мидлом и просто работая с не высокими требованиями на 3-4 работах (суммарно выходит значительно больше чем на синьерской позиции).


  1. MonkAlex
    05.10.2025 12:31

    Давайте как в школе, начнём с определений.

    Дайте своё определение senior разработчика.

    Потому что пример вида

    "Это не моя зона ответственности. Пусть CRM-команда разбирается."

    по моему показывает вполне правильный подход к работе. Неважно, какой это разработчик, зоны ответственности у всех свои. И знания в этих зонах разные.


  1. apcs660
    05.10.2025 12:31

    Вспомнился анекдот:

    Кого поставим архитектором?

    Предлагаю Василия.

    Почему его, он же неграмотный?

    А кто код то писать будет если грамотного в архитекторы?