Как (не) пройти собес с пользой

Был ли у вас опыт неудачных собесов? По-моему, вопрос риторический.
Вот и я не исключение, поэтому решил поделиться мыслями и советами, которые помогут и кандидатам и интервьюерам и даже рекрутерам.
Обо мне

Руководитель отдела разработки
Всем привет. Меня зовут Александр, и я работаю руководителем отдела разработки.
До этого момента работал в ролях тимлида и java разработчика. И за это время я прошел наверно более сотни собеседований, и провел не меньше.
Интро
Джависты холиварят на тему Hibernate vs голый sql, фронты соревнуются в выпадах против Angular/React/Vue, DevOps Вася расскажет вам, что DevOps это не позиция, а инженерная практика.
И только вопрос собеседований/найма сближает всех и везде в IT.
«Кто посмел давать тестовое задание? Платите тогда денюжку»
«Какого черта меня спрашивают кем я себя вижу через 5 лет? Фу, вопросы из прошлого века.»
«Почему это я должен включать камеру? Я что вам, вебкам модель?»
И многое другое вы можете увидеть в комментариях под любым постом про тему найма и собесов.
Не хочу никого переубеждать. Просто расскажу про свой опыт собеседований и поделюсь выводами, которые я сделал для себя.
Если возьмете на вооружение — будет отлично, если просто улыбнетесь во время чтения статьи, узнав себя, тоже неплохо.
А теперь погнали!
Случаи из жизни
История первая. Самая первая.

Этап: технический
Мой уровень: мидл+
Особенности:
Мой самый первый внешний собес.
Должны были провести собес за ноутбуком и покодить, но в последний момент эйчар сказал, что интервьюер не сможет подключиться с ноута и будет с телефона, поэтому формат — разговор по телефону (ммм… лайвкодинг по телефону?).
Человек был явно не в духе и куда-то спешил.
Долго мучал вопросом про дефолтную реализацию метода hashCode () в java. Ответ я дал. На что получил: это не так работает. Как оказалось впоследствии, в разных версиях jdk устройство отличается и я предположил логичное решение (так как не знал реально). Кстати, оно оказалось одним из существующих.
Кроме этого на остальные вопросы я слышал смешки в телефоне, хотя отвечал четко по делу, так как к такой теоретической базе был готов.
Результат, конечно, был не в мою пользу
Вывод
Интервьюеру: поменьше заносчивости на собеседованиях когда перед вами специалист с не такой ОГРОМНОЙ экспертизой как у вас. Постройте беседу, а не самоутверждайтесь.
Кандидату: не забывайте, что вам потенциально придется работать с теми, кто собеседует, поэтому также самостоятельно оценивайте людей на адекватность.
История вторая. Сквозь тернии алгоритмов к звездам.

Этап: технический
Мой уровень: мидл+
Особенности:
Второй мой собес вообще и, потенциально, последний в эту компанию.
До собеседования я уже знал про особенности и упор на алгоритмы, которые я на дух не переношу (ну реально не понимаю их ценности в вакууме, а не в составе какой-то нормальной практической задачи). По алгоритмам у меня в универе была твердая пятерка, но ввиду неиспользования всей этой кучи знаний, она (куча) быстро улетучивается.
Долго и упорно спрашивал эйчара будут ли одни алгоритмы на собесе, на что получил ответ, что: «У нас много проектов и я вам найду, где нет такого упора на них и будет нормальный собес.»
И что вы думаете? Полтора часа обхода деревьев вдоль и поперек, поиска кратчайшего расстояния. И все это в какой-то глючной онлайн IDE, результат в которой обновлялся через пару минут и мне приходилось голосом озвучивать, что я там пишу.
Ввиду того, что я специально не готовился и не стал на литкоде сутками наяривать однотипные задачи: получил ответ, что алгоритмы я писал неоптимальные. эхх… <тут шутка про построение самого оптимального маршрута "Московский вокзал - Парнас” от таксиста, который второй час стоит в пробке и какими только словами вспоминает эти алгоритмы>
Вывод:
Рекрутерам: Не надо обещать кандидатам то, в чем не можете быть уверены. Если у вашей компании есть особые требования (а это в целом нормально), сделайте на этом упор и отсеивайте неподходящих кандидатов сразу на HR звонке.
Кандидатам: Изучайте заранее формат собеседований и отказывайтесь если вас это не устраивает (алгоритмы, тестовые задания и т.д.). Ну или готовьтесь целенаправленно — если вам очень нравится компания, даже с учетом некоторых особенностей.
Интервьюерам: Тут даже добавить нечего, сам знаю, что такое политика партии.
История третья. Битва с боссом.

Этап: технический
Мой уровень: синьор
Особенности:
Вакансия была довольно стандартная: Java сервисы, Rest, DB.
Вместо собеседования в кругу разработчиков получилась очная ставка с директором отдела, который последний раз проводил технический собес лет 10 назад. Ну повезло вот мне, что сказать.
Битый час я переводил 1 (да, именно единицу и только ее) в разные системы счисления, прибавлял к -1 (минус единице) 1 (единицу), описывал разницу между 32 и 64 битными системами, считал размеры объектов и ссылок в джаве.
Ни одного вопроса уровня синьора (паттерны, опыт работы с SQL, ci/cd), ни проектирования решений. Только особенности работы разных jvm и все виды единичек.
Кстати очень долго разбирал фидбек от эйчара, что «мне не хватает опыта работы с БД». Ведь ни одного вопроса про БД (базы данных) мы так и не обсудили. Но я все же решил головоломку и осознал, что БД означает бинарные данные, а не базы данных. Вот такие вот СД (странные дела)…
Кстати после этого эйчар предложил еще раз прособеседоваться, но на другой проект. Читайте дальше в статье про «Успешные собесы».
Вывод:
Рекрутерам: стоит явно заводить разные вакансии под разные проекты и указывать конкретные требования. Часто в больших компаниях под одной вакансией кроются десятки проектов с совершенно разными инструментами и подходами.
Кандидатам: заранее спрашивать про формат собеседования и ожидания от кандидатов (лучше лишний раз переспросить, чем по два раза проходить собесы в одну и ту же компанию).
Интервьюерам: доверьте первое собеседование тем, кто будет вариться вместе с потенциальным работников в общем котле задач. Ну и не стоит вспоминать молодость (свой крутой дев опыт) через собеседования.
История четвертая. Семеро на одного.

Этап: технический
Мой уровень: синьор
Особенности:
HR опоздал и я ждал его утром в офисе компании минут 20, потом он собирал еще минут 10 всех людей для собеса, бегая по офису.
На собес пришли человек 6, не включая hr: тим лиды, разрабы, ПМы, ДМы.
Задавали очень разнородные вопросы в хаотичном порядке.
Алгоритмическая задачка отсортировать синие и красные шары в 1 проход (затупил и предложил дефолтные алгоритмы сортировки).
Задачка про хэшмапы. Самый шик. Один человек задал вопрос, попутал условия. Я ответил. Второй его стал поправлять, уточнил, что изначально забыли сказать вот о таком условии. Подключился третий уже пытаясь понять, что первые два имели ввиду. В итоге пошли дальше в похожем темпе около часа.
Результат оказался не в мою пользу. Синьорных вопросов я так и не услышал (а на алгоритмы у меня «аллергия»).
Вывод:
Рекрутерам: не опаздывайте, согласовывайте список интервьюеров заранее.
Кандидатам: задавайте уточняющие вопросы, если изначальные требования вам кажутся неполными или противоречивыми, ну и готовьтесь к алгоритмам если хотите покрыть бОльший объем предложений на рынке.
Интервьюерам: согласовывайте и готовьте вопросы и темы заранее, назначайте ведущего интервьюера, не ходите толпами на очные собесы (это смущает, а вы тратите много своего рабочего времени).
История пятая. Попытка не пытка.

Этап: управленческий
Мой уровень: Лид/Хэд
Особенности:
Перед собесом эйчар в целом неплохо описала фронт работ.
На собесе два человека представились, дали все вводные и описали требования к кандидату.
Нужен был лид, который будет управлять командой в 20 человек (реорганизовать, поставить процессы и тд). Проект про аналитику, data lake и прочие большие данные.
Были вопросы о техническом опыте, опыте выстраивания команд, найме, увольнениях.
Потом подобие стресс интервью (может мне так показалось) в формате кейса, где надо было справиться с сопротивлением команды и влиться в коллектив. Кейс отличный, вопросов не имею.
Как итог: получил отказ и фидбек, что мне не хватает опыта разруливания таких ситуаций и технический опыт не сильно релевантный (с аналитикой действительно опыта маловато было).
Посидел, подумал, сделал выводы.
Вывод:
Рекрутерам: Четко озвучивайте требования, формат собеседования. Это помогает настроиться на нужный ритм.
Кандидатам: Получив отказ, просите более детальный фидбек и прорабатывайте свои слабые стороны.
Интервьюерам: Подбирайте кейсы из реальных ситуаций и четко озвучивайте проблемы, с которыми предстоит столкнуться. Это позволит найти реально подходящих кандидатов, а не просто инженеров/руководителей с большим стажем и знанием теоретической базы.
Итог
Я, как руководитель, могу находиться с обеих сторон, но я всегда за оптимальные процессы. Не люблю тратить время, которого и так бывает мало.
Как кандидат, я хочу максимально открыто узнать о требованиях и ожиданиях ко мне максимально заранее, а также пообщаться в позитивным ключе на собеседовании со своими потенциальными коллегами.
Как интервьюер, я не хочу тратить время на кандидатов, которых привели просто по совпадению слова Java/Ruby/Go в резюме. Хочу видеть до собеседования подробный опыт и достижения человека, знать его мотивацию и стоп-факторы.
Поймите, что любое собеседование это двунаправленное тестирование. Хорошая компания ищет лучшего среди N кандидатов на одну позицию, а хороший кандидат сравнивает M компаний, чтобы выбрать себе наиболее подходящее место.
Если «мэтч» не случился — ничего страшного. Но вот если это уже десятый кандидат или компания без «мэтча», пора присмотреться к себе и пересмотреть требования.
Ну и заключительный мемчик про собеседования.
