Comments 218
junior — легкие задачи решает сложно, сложные решить не может.
middle — легкие задачи решает легко, сложные сложно.
senior — все задачи решает легко.
- Senior все задачи могут решать легко, но уже не все задачи выполняют (для этого есть junior и middle)
- Middle решают уже очень многие задачи (и легкие и сложные), но им не системно, кругозора для вариативности решений + особо крупные задачи решать еще не в состоянии
- Хорошие Junior и Junior+ могут решать почти тот же набор задач, что и Middle, но не самостоятельно, а под надзором. И не оперируют полным набором факторов.
Итого: не всегда в легкости и сложности задач дело.
Middle — может выполнить проект в одиночку, без «оркестра»
Junior — не может
Senior — не будет.
В оригинале это шутка на баше, но по мне вполне себе реальный подход.
Какой-то маленький проект, видимо:)
В моем мире проект, который можно сделать за год-два-три в одно лицо, не может быть большим.
junior — все задачи решает легко (но в основном неправильно)
middle — сложные задачи решает легко (в основном костылями), легкие сложно (архитектуру там свою напридумать, потренировать новые фичи языков и фреймворков)
senior —
А Что такое "сложная/легкая" задача и что такое "легко/сложно" решается?
То есть задача либо решается (и тогда она легка) либо не решается (и тогда она сложная). Разве тут есть средние варианты?
Очень странно, такой ошибки не возникало в процессе.
Только вчера обсуждал фундаментальный недочёт в подготовке программистов в плане софт-скилов, который приводит к этому классическому ответу "У меня работает/работало" xD
Как думаете, кому-то кроме Junior'ов допустимо пользоваться таким ответом?
А в чем вы видите проблему такого ответа?
А проблема ответа-то в чем?
Мне, кажется, вот этот ваш ответ гораздо хуже ответа "а у меня работает".
Почему же? Она имеет вполне отношение к делу, в частности: "Иногда бывает, что нет связи с сайтом опросника, попробуйте через какое-то время пройти еще раз.", а то, что "у нас работает" — это причина, по которой человек решил что проблема именно в отсутствии связи или чем-то подобном.
Какое же это "не имеет отношения к делу"?
И да, «попробуйте еще раз через 5 минут» это допустимый ответ. «Выясняем, сообщу вам через час», тоже допустимо. А вот «у меня работает» это классический ответ по которому можно понять что работаешь с недостаточно квалифицированным человеком.
Люди, ответственные за выяснение технических деталей инцидента, должны выяснить эти детали, воспроизвести «не работает» и отправлять разработчику полное описание того в какой именно конфигурации окружения не работает. Да, бывают плавающие баги, но ответ разработчика «не могу воспроизвести „не работает“» вам понравится больше чем ответ «у меня всё работает»?
Хороший ответ должен давать информацию по следующим аспектам:
1. Насколько плотно работают над проблемой?
2. Когда она будет решена?
3. Требуется ли что-то, для того что бы задача была решена или решена быстрее?
По сути это единственное что волнует клиента, и как следствие, должно волновать разработчика. Ответ «у меня все работает» не отвечает ни на один из аспектов, более того, создает впечатление негативных ответов. Похоже, над проблемой сейчас не производится никаких работ, и не похоже что кто-то что-то делал. Вариант «не могу воспроизвести», означает что по крайней мере кто-то что-то попытался сделать, но ситуация по прежнему не улучшается.
Идеальный ответ звучит так:
«Наши лучшие специалисты в настоящий момент плотно работают над этим, ожидаем решения в течении часа. Ребятам здорово поможет, если вы дополнительно предоставите следующую информацию:
1.…
2. ....»
И варианты «не могу воспроизвести» и «у меня всё работает» означают почти одно и то же за исключением ситуаций типа «не могу воспроизвести, у меня комп сломался».
Для ответа начальнику очевидно достаточно «сейчас работаю над этим». В случае критичности проблемы можно сказать «отложил остальные задачи, сейчас работаю только над этим».
Ну и нужно понимать это это воображаемый пример который просто иллюстрирует как может звучать ответ, который отражает информацию по важным аспектам. Естественно его нужно допилить по месту.
Ну и «такой ситуации не должно возникнуть» так себе логика. По ней и багов то быть не должно. Пони, радуга, рок-н-ролл.
У нас кстати говоря разработчики работают с заказчиком напрямую. И в нескольких конторах до того, где я работал это происходило в той или иной степени.
Образ разработчика как нелюдимого тролля, говорящего не непонятном языке уходит в прошлое.
Компании без бенча — не уверен что их можно называть аутсорс компаниями. Вполне себе тянет просто на посредника или биржу труда.
А вот с выбором проекта это да, боль. Обычно куда поставят — туда поедешь, без вариантов. Это практически везде. Мы стараемся наверное больше остальных упарыватся подбирать проекты под людей, но сколько усилий не трать — гарантии получить проект не выходит. Но управление бенчом это тема для отдельного разговора.
К примеру — выпадает человек на бенч, подбираешь ему хороший проект, а он не стартует. Заказчик маринует месяц, потом второй, третий…
Новички(кто только пришел в компанию) очень не любят сидеть на бенче. Поскольку ежели я вам так нужен, что вы меня наняли, как так что для меня проекта нет? А именно их сложнее всего пристроить.
И да, на бенче чаще всего сидят миддлы и джуны, но именно им бенч меньше всего интересен и нужен — на бенч лучше всего сажать старших, что бы хоть передохнули между проектами, но их оттуда оттаскивают в первую очередь.
Это только в общих чертах. При этом бенч довольно важная штука в профилактике выгорания, росте и развитии компании, и качество управления им имеет очень большое значение для компании. Но управлять им — реальный ад. Почти всегда выбираешь наименее отвратительное решение, удачные и верные ходы — большая редкость.
Так и какое клиенту дело, что на машине разработчика работало/работает? Ему это чем поможет?
Клиенту поможет совет попробовать еще раз через некоторое время. А "у меня работает" — лишь объяснение того, почему совет именно такой, а не какой-то другой. Просто чтобы клиент понимал, почему ему дали такой совет.
И да, «попробуйте еще раз через 5 минут» это допустимый ответ.
Так именно такой ответ выше и был дан.
«О Великий Думатель, я хочу услышать ответ четкий и ясный, дай нам ответ на главный вопрос» (с)
"Мы усиленно работаем над вашей проблемой" точно так же может значить что угодно.
Это значит что над ней по крайней мере работают.
Поверьте, совсем не значит.
Почему же врет? Это все ваша интерпретация. "Мы усиленно работаем" = баг завели, он теперь в трекере (= в работе) и возможно даже не с минимальным приоритетом (= не просто работаем, а усиленно!). Все по-честному, и когда-нибудь до него у кого-нибудь дойдут руки.
Потому что если человек говорит «мы усиленно работаем», а на деле не делается ровным счетом ничего — это ложь
Ну как же ложь, если нет. Баг в трекере — значит над ним работают, по факту.
Софистикой не страдайте.
Какая софистика? Над багом работают — это факт. Что вас не устраивает? или пол "работать" следует понимать исключительно момент написания кода? А если человек, ответственный за этот баг, в этот момент задумался о чем-то или пописать отошел — то все, никто над багом не работает, вывсеврети?
Когда к вам начальник придет и спросит что было сделано за неделю такой «усилинной работы» вы о чем отчитаетесь?
Если ничего не сделано — то о том, что ничего не сделано. А о чем еще отчитываться? И к чему этот вопрос?
Производство работы это процесс. Состояние бага в багрекере это не процесс. Либо кто-то работает над задачей, либо нет. Вы сами сказали — статус выставили, и «когда-нибудь до него у кого-нибудь дойдут руки». Это совсем не тоже самое что «задумался о чем-то или пописать отошел».
Либо работа реально реально производится, либо нет. Работа это любая деятельность направленная на решение проблемы, будь то написание кода, либо просто размышление над задачей или общение с закачиком, это не важно. Если работа не производится, а разработчик говорит, что «мы плотно работаем», то это ложь. Независимо от того какие там статусы в багтрекере. Перевод статусов в багтрекере не способствует решению задачи.
Либо работа реально производится и кто-то над ней работает и тогда все ок.
Если вы не понимаете таких довольно простых вещей, не вижу большого смысла с вами обсуждать более сложные аспекты коммуникации
И сказать то он может все что угодно, но за слова отвечать потом придется самостоятельно. В частности если вдруг язык повернулся отчитался что «плотно работаем» глядя чисто на статус тикета, неплохо бы пойти потом и проверить, что работа реально происходит.
Опираясь на статус багов отчитываются только те, у кого есть менеджерские обязанности(бывает и разработчики). Остальные отчитываются в основном только за себя (где обладают полной информацией), либо если обладают реальной информацией о других, в которой они точно уверены, например видели своими глазами.
Естественно исхожу из ситуации, когда тикет с багом не приходит с комментарием от начальника типа «Бросить всё и исправить любой ценой, забив на все остальные задачи. Даю полномочия на прямой контакт с клиентом с целью получения условий воспроизведения и согласования пути решения»
Это вообще все что угодно может подразумевать. Сама фраза, как я уже сказал, не несет ровным счетом никакой полезной информации. Все остальное — домыслы, попытки опереться и угадать исходя из дополнительного контекста, что же разработчик имел ввиду.
В том, что это не ответ, а попытка переложить ответственность. Раз "такой ошибки не возникало", то разработчик типа уже не причем. Способность брать на себя ответственность и не отмазываться — крайне важный навык для всех разработчиков, начиная с мидла, а также для всех менеджерских должностей. Причём совершенно неважно, кто конкретно косякнул, при вопросах извне любой член команды может признать ошибку, извиниться, проинформировать о процессе решения вопроса. Иначе всё перерастает в перекидывание ответственности и поиск козла отпущения, иногда и в виде клиента.
И не «разработчик типа уже не причем», а «не в моей компетенции устраивать клиенту допрос с пристрастием, для выяснения того чем его конфигурация отличается от рекомендованной, а, тем более, чем конфигурация продакшена, к которой у меня нет доступа, отличается от рекомендованной».
Ответственность за что?
Профессиональная ответственность за получившийся результат. Она есть практически во всех профессиях, но среди программистов, к сожалению, очень распространен подход сделать "для галочки".
Представьте, что вы купили машину, выехали из автосалона, а она разгоняется максимум до 30 км/ч и при этой скорости начинает дребезжать так, что вот-вот детали отваливаться начнут. Норм? А в программных решениях такое сплошь и рядом происходит.
не в моей компетенции
Ну, если не в вашей компетенции, то оставьте общение с клиентами тем, в чьи компетенции это входит. Всё просто же.
его конфигурация отличается от рекомендованной
Для начала надо ещё доказать, что проблема в этом. И спойлер: чаще всего проблема не в этом.
Собственно я и намекаю, что разбор инцидентов с клиентами не дело разработчика в общем случае, если не учитывать «тыжпрограммист».
Т.е. вряд ли без ущерба для здоровья можно совмещать тимлида и супер-синьора. Либо я таки чего-то не понимаю.
И как бы средний специалист это вредитель на большом проекте, средний менеджер это вредитель на любом проекте.
Хотя конечно, от компании зависит. Бывает по всякому.
Что такое ECS и Sagas?
Саги: habr.com/company/avito/blog/418235
Не уверен, лучшие ли это статьи — просто для пояснения нашел
Ну, и в качестве отвлеченного замечания: это что же, теперь синьор еще и людей любить должен?!!!
На психоаналитиков похожи, на мой взгляд =D
Просто авторы различных книжонок и рекомендаций вкладывают в софт скилс под управлением, в первую очередь навык наставничества. Не знаю откуда пошла эта мода но в здоровых коллективах оно выстраивается естественно. В каждой команде есть старожил который расскажет подробно о всех явных и не явных процессах в компании.
По проблемам с софт скилами, тут мне кажется основное дело вот в чем. Как правило требования к ним растут не линейно. По факту обычно сидит человек кодит себе, никого не трогает, качает свои хард скилы. А в один прекрасный день к нему приходит менеджер и говорит, теперь ты будешь тимидом. Что это такое, как это делать, никто не объяснит. На курсы тоже не отправят. Вот тебе проблемы, разгребай. И дальше начинают прилетать проблемы. Ты чего своих не менторишь? А что надо было? И в том же духе. Сверху начинают сыпаться одни только проблемы, получается негативное закрепление. В итоге большая часть говорит, что нафиг мне такое счастье? Кодил себе и все хорошо было. Нафиг качать эти софт скилы, от них проблемы одни.
А качать их это хорошо, правильно, и классно. Просто далеко не везде.
«Принятие ответственности в сферах: целей и планов, профессиональных взаимоотношений, руководства, карьерного развития» — ответственность это хорошо, но о чём здесь речь?
ну тут мне как раз понятно, тут формулировка размытая, ибо в разных компаниях это очень разная деятельность. Но это как раз менторство, аттестации, индивидуальные планы развития, вот это все. Тут даже для одной компании сложно внятно сформулировать, а уж для рынка и вовсе никак лучше не скажешь.
Ощущение от всего этого описания и теста, что Сеньор — этакая палочка-выручалочка: придёт и молча исправит всё. Даже то, что вне его сферы ответсвенности.
Ну вроде так и есть. Разве нет? По опыту чего-то такого от сениоров и ждут.
Если senior — это супер-профессионал высокого уровня, то он, безусловно, выручалочка) Не зря у него и статус, и ЗП соответственные. Хотя, конечно, не волшебник. Тут перегибать не стоит.
Другими словами нужен инженер который не просто пишет код, а делает продукт, а код это уже второстепенно. И сфера компетенции в таком случае естественным образом значительно размывается.
Правда разные компании находятся на разных стадиях осознания процесса. Кто-то явно понимает и открыто об этом говорит, а кто-то выстраивает непонятные абстрактные формулировки, за которыми можно только догадываться.
В бирюзовых организациях любой сотрудник имеет возможность проводить изменения любого уровня. По сути, даже джун, может проводить изменения на уровне компании, то что в классической схеме управления часто может сделать только владелец компании. Это таки очень сильно увеличивает степень ответственности на всех уровнях, особенно на низких (на высоких она наоборот снижается, происходит выравнивание).
Узнать причину отказа, выяснить что нужно сделать (грубо, какие скиллы прокачать), чтобы не отказали в следующий раз, оценить стоит ли овчинка выделки в данной компании и принять решение либо качать тут, либо качать в другом месте (грубо, курсы тимлидов), пока оставаясь тут работать, или качать в другом месте и работать в другом месте. А может в другом месте уже сочтут, что достаточно прокачен.
Если без конкретики, то надо валить, если реально хочешь повышения. Возможно не сразу, а найдя что-то взамен предварительно, причём прямо на собеседованиях спрашивая «сейчас я пришёл сеньором, но через год вижу себя в вашей компании тимлидом. Вот вы меня поизучали, допустим делаете оффер и я его принимаю — скажите, что мне конкретно нужно ещё изучить-освоить чтобы при открытии такой вакансии вы её мне предложили? У вас внутренние курсы или типа того есть для этого? » На удивление, часто рассказывают. Ну или отвечают так, что даже если оффер будет, то принимать его не станешь.
А вот работа на износ, это да. С любопытством наблюдаю за такими. Пока вроде никто из тех за кем наблюдаю не сгорел за несколько лет. Но кто знает.
И вполне возможна ситуация, что владелец скажет — окей, займись этим, т.е. выдаст ему все полномочия для проведения этих изменений. Для этого есть специальный механизм, и касается это даже джунов.
Так что вы несколько ошиблись в том, кто плавает в теме.
Но границ нет. Есть зоны ответственности, но они никак не ограничивают в деятельности. Да, конечно, твои действия должны быть согласованы с тем, в чьих зонах ответственности ты действуешь, но это не граница, там нет запрета на пересечение.
Ну а ситуация «ты будешь лидом!», к сожалению, встречается. Из-за дефицита человеческих ресурсов, особенно, на верхнем уровне. Хотя у компании всегда есть выбор: например, нанять тимлида с рынка по соотвестующим критериям. Мы делали или так, или помогали развиваться: у нас была целая программа тренингов развития всех нужных навыков.
Ситуация «ты будешь лидом» не просто встречается. Это повсеместная практика. Что бы не быть голословным — я довольно долго искал в Питере компанию, в которой этот вопрос был бы решен. И мне оказалось проще найти ее за пределами Питера, и привести ее на рынок, чем найти. А это уже по факту означает что можно считать что это не решено в городе вообще нигде.
И дело не в наличии ресурсов. И мало всегда и везде, это в принципе лимитированная вещь. Дело в подходе. Нужно что бы к моменту, когда человеку придет время стать лидом, у него в голове уже должны быть необходимые опыт и знания. Видение. Он уже должен понимать что такое команда, что с ней делать, шарить в методологиях управления, и много чего еще. И при этом у него еще желательно должен быть какой-то маломальский опыт в этом. Для этого в компании должна быть очень продвинутся система роста людей и управления, работающая на опережение. А у нас обычно реактивное управление, никто ничем не занимается, пока петух не клюнет. Заранее даже на шаг не думают.
«опыт, это такая штука, которая приходит сразу после того, как была нужна».
Но вот что бы это прямо реально работало нужно много условий. Нужна налаженная система менторинга, планов развития, аттестаций, бюджетов на обучение (как финансовых так и временных) и так далее. Нужна постоянная подпитка системы снизу, при том желательно со стажировки. В очень небольшом количестве компаний все это есть, и в еще меньшем количестве это не просто формальность, а реально работающий инструмент.
Вообще слышал совет такой: придя на руководящую должность, которая не является пределом твоих мечтаний, нужно с первого дня готовить себе заместителя из числа подчинённых. Это в том числе поможет убрать такое препятствие в карьере как: «да, ты потянешь эту должность, но я тебе её не дам, потому что на твоё место мне поставить некого, некому руководить твоей командой»
Похвально, жаль что не все это исповедуют де-факто, даже если де-юре у всех замы есть.
Ну и опять же, если вдруг придется уходить (всякое бывает, например сделали предложение от которого сложно отказаться) можно уйти со спокойной совестью не отрабатывая месяца полтора.
Ну а ситуация «ты будешь лидом!», к сожалению, встречается. Из-за дефицита человеческих ресурсов, особенно, на верхнем уровне. Хотя у компании всегда есть выбор: например, нанять тимлида с рынка по соотвестующим критериям. Мы делали или так, или помогали развиваться: у нас была целая программа тренингов развития всех нужных навыков.
Отличная компания сделала этот тест. Я думаю, в их коллективе хорошо относятся к сексуальным меньшинствам. Ну и разными другими достоинствами они тоже не обделены.
Поэтому мы понимаем недовольство «ответом на почту») Для целей нашего проекта нам достаточно неавтоматизированной обработки результатов. Здесь мы привели наш тест в качестве примера и практической иллюстрации приведеных требований. Но все же поделимся интерпретациями со всеми, кому будет интересно.
мне нравится очень краткая характеристика сениора: усталый, дорогой и предвзятый.
Что-то ничего про цензуру, и даже вряд ли можно сказать, что тут собрались официальные, политические и культурные круги.
Однако, я работаю в одной большой международной компании в ресерч отделе. Разрабатываю инфраструктуру (архитектуру и приложения, в том числе непосредственное написание приложений, клиент серверных и стендалон) для работы с инженерными данными и автоматизацию инженерных задач. Почти всегда мои предложения принимаются и мое начальство (забугорное) и тим лиды оценивают его как годное.
Вопрос: кто я?
Спрашиваю это к тому, что некоторые тесты, которые присылают компании в качестве предварительного этапа для отбора кандидатов, я не могу пройти, так как не хватате времени.
Было это кстати в одной очень известной компании. Выходишь такой и думаешь, ну и хорошо что не взяли.
Может быть, был бы я Си разработчиком (без плюсов, чистый Си), мне бы это и пригодилось. Но я питон разработчик. Любая ручная реализация сортировки заведомо медленнее чем [].sort() тупо из-за расходов на интерпретацию, другими словами никакой практической пользы не имеет.
Ну или для джуна или миддла еще приемлемо смотреть на «серьезность подготовки» по всякой ерунде. А если мы говорим о том, что даже старший разработчик должен иметь понимания бизнеса, то это уже не найм раба на галеру, где преданность в глазах должна быть. Это практически равноправная сделка, что уже говорить о ведущих разработчиках, которые частенько весь бизнес вывозят. Там подготовку по другим параметрам смотрят — погуглил ли он о компании, насколько меткие вопросы задает, внимательно ее изучает. И чем выше, тем больше вообще стоит вопрос — кто кого вообще собеседует. Начиная с определенной квалификации (особенно если есть чем ее подтвердить), то собеседование вообще наизнанку выворачивается.
Было бы странно, если бы Программист-звезда не знал базовый computer science.
«Мне cs не нужен, всё уже есть в языке» — а потом можно посмотреть на одну из больших корпораций, например Одноклассники, где пишут, например, свои надстройки над базами, языками, виртуальными машинами и другим. А тут уже оказывается, что все алгоритмы придётся писать руками, а не брать из языка.
Не странно ли при всем при этом спрашивать у людей то, что реально никогда не пригодится, и делать это ключевым критерием отбора? По мне так это откровенно не адекватно.
Взять тот же пример с сортировками — откуда это требование проистекает? Из действительно большой зависимости разрабатываемого кода от сортировок или «чтоб было» и «так положено»? Мало того, что все эти «на всякий случай»-навыки отфильтровывают действительно годных кандидатов, так они еще и в случае найма прошедшего такой фильтр могут просто ввести в компанию кандидата с невостребованными ею же навыками, или же привести к найму оверкомпетишн человека, которому вы будете платить деньги за знания, а не за деятельность, реально потребную вам.
Это ли не безумие?
Ну а монструозные списки требований как правило вылезают из размазанных зон ответственности. По факту обычно не известно точно, что нужно. Есть некоторая дыра которую надо закрыть, и тут уж кого найдут — тем и закроют. Т.е. список требований — это список пожеланий и не нужно к нему подходить как то, что нужно реально все это знать. Как правило ожидают до 75% покрытия.
Ну, и опять же, планка критериев поиска всегда должна быть выше ожидаемого результата. Вы удивитесь по насколько безумным требованиям иногда удается находить реальных кандидатов, которые им удовлетворяют. А если не завышать ожидания, таких не найдешь.
Поиски универсальных волшебников — это, конечно, увлекательно и возвышенно, но как минимум непрактично — я это и хотел сказать своим комментарием.
Например если это тимлид плюс, который может уже не только тимлидить, а подхватывать и более высокоуровневые вопросы, то такой человек очевидно гораздо более ценен практически для любой компании. Таким подходом такие люди автоматом отсеиваются. А должно быть наоборот.
Иной раз так и хочется сказать — а зачем?! Вы тут велосипеды строите что ли? И ведь строят, и гордятся своими «знаниями». А потом вся эта самопальная красота выходит конторе огромным геморроем в сопровождении, ибо любая кастомная вещь — это дополнительная сложность в проект. Зато — кто-то продемонстрировал как он могёт!
Меня лично оторопь берет, когда люди хвалятся своими «хакерскими» достижениями. Потому что коммерческий софт — это не место, где надо упражняться в уникальности и забористости — это всё боком выходит в дальнейшем, если, конечно, это не какой-то усовершенствованный «хеллоуворд» или что-то из разряда «выстрелил — и забыл». А это распространенная причина включения в тесты таких специализированных вопросов от таких выбившихся выше «хакеров». Другая причина — это когда копипастом с аналогичных вакансий берут список скиллов и эти самые тестовые задания, совершенно не отражая — зачем они им?
Действительно чем выше уровень специалиста тем он больше нужен компании чем она ему.
Поэтому уже специалист начинает присматриваться к компании, смотреть подойдет ли она ему, будет ли ему интересно и насколько полезный опыт он получит.
Соответсвенно и собеседуется уже не работник, а компания, и если представитель компании начинает с ходу задавать глупые вопросы, то собеседование такая компания уже не пройдет.
Я предполагаю, что тимлид также должен уметь объяснить, почему знания алгоритмов ему необязательны для своей работы. Хорошо так объяснять, с аргументами. Потому что (как мне кажется) важным навыком тимлида является умение убеждать/уговаривать в том числе собеседника, который абсолютно уверен в своей правоте. А еще тимлиду важно понимать, где он может задавить авторитетом, где включить свое хорошее понимание темы, а где использовать «софт-скиллы», т.е. умение убалтывать.
<мечтательно> Когда меня будут собеседовать на тимлида и я услышу аналогичный вопрос… Я должен буду понять, смогу ли ответить и если нет — доказать, почему незнание конкретно этого аспекта позволяет мне претендовать на должность. Причем оценку «знаю-не знаю» и поиск аргументов в случае «не знаю» я должен осуществить быстро.
Повторюсь, это взгляд снизу, если где неправ — поправьте.
К тому же по слухам зарплаты там были не особо высокие, да и в итоге на собеседования по сумме ушло больше 8 часов(только к ним), продолжать не похоже что имело смысл.
Как с вашей классификацией соотносятся позиции Tech Lead, Architect (Solution/Technical/Enterprise), Principal, CTO/CIO, VP of technology?
Куда вы отнесете Senior QA, Senior DevOps и какие к ним будут требования?
Им тоже нужно знать алгоритмы и ООП?
Но и требования к мидлам (да и вообще ко всем разработчикам) достаточно серьезные.
Все перечисленные позиции всё больше в сторону работы с людьми, финансами и другими ресурсами. Все перечисленные должны, грубо, обладать примерно одними техскиллами (пускай в прошлом), но с каждой ступенькой всё больше должны иметь разнообразных навыков работы с людьми, как минимум, навыки управления командами и навыки «продажи» своих технических идей бизнесу.
Меняя работу(не дай бог отрасль) — первые пол года по любому уйдут на знакомство с предметной областью, корп.культурой и местными порядками, изучение проектов и т.д.
Людей сразу под реализацию идей тоже вряд-ли дадут, потому ты как бы будешь middle+ с перспективой.
Хороший код до Google не доведет