Если смотреть на рынок объективно, у Python-разработчиков, которые застряли на уровне 150-250к, почти всегда повторяются несколько пробелов.
Они могут проявляться по-разному, но логика одна: человек умеет писать код, но не всегда умеет мыслить, объяснять и позиционировать себя на уровне, за который платят 280-450к.
1. Отсутствие системного мышления
Человек умеет закрывать задачу, но не всегда видит систему целиком. Он понимает, как написать endpoint, но хуже видит, как это решение влияет на нагрузку, данные, соседние сервисы, отказоустойчивость, поддержку и будущие изменения.
Senior-мышление начинается там, где разработчик перестаёт смотреть только на “как сделать” и начинает думать “что произойдёт с системой после этого решения”.
2. Слабое понимание production
Многие middle-разработчики знают, как сделать фичу, но хуже понимают, как система ведёт себя под нагрузкой, где появляются bottleneck'и, как деградируют сервисы, какие метрики важны, как решения масштабируются и что происходит, когда идеальная схема встречается с реальным трафиком.
Production-мышление - это не только знание инструментов. Это способность думать последствиями: что сломается, где будет дорого, где будет медленно, где появится операционная сложность и как это заранее заметить.
3. Поверхностное понимание очередей, баз данных и highload
На собеседованиях 300к+ почти всегда всплывают индексы, execution plans, транзакции, isolation levels, оптимизация запросов, consistency, очереди, ретраи, идемпотентность, backpressure, рост нагрузки.
И здесь огромное количество middle-разработчиков сыпется не потому, что никогда не слышали эти слова, а потому что не могут рассуждать о них в контексте реальной системы.
Знать, что такое индекс, мало. Нужно понимать, когда он помогает, когда мешает, как меняет план запроса, что происходит при росте данных и почему “добавим индекс” не всегда является ответом.
4. Отсутствие инженерной аргументации
Человек может знать решение, но не уметь объяснить, почему именно так, какие были альтернативы, какие trade-offs, какие риски и что он будет делать, если вводные изменятся. А senior - это во многом способность reasoning'а.
На Senior уровне важно не просто сказать “я бы сделал X”. Важно показать, почему X, почему не Y, при каких условиях решение поменяется и как вы оцениваете последствия. Это и есть инженерная зрелость в разговоре.
5. Отсутствие стратегии выхода на рынок
Многие разработчики пытаются “стать senior внутри себя”. Они учатся, читают, работают, закрывают темы, но не понимают, как рынок оценивает кандидатов, как формировать narrative, как проходить Senior собеседования, как показывать влияние и как продавать свой опыт без ощущения продажи.
Именно поэтому сильный технически человек может годами сидеть на 220к. Не потому что он слабый, а потому что его уровень не виден рынку.