На своём обучении мои ученики присылают мне записи своих собеседований, чтобы я разобрал их и выявил то, над чем стоит поработать перед следующим собеседованием. Я разбираю по таймкодам: какой был вопрос, как человек ответил, что сработало и что чинить к следующему разу. За весь мой путь записей HR-скринингов собралось уже достаточно, чтобы видеть, какие повторяющиеся паттерны есть у рекрутеров. В этой статье расскажу, что рекрутер на самом деле проверяет за 20–25 минут (и спойлер: это вовсе не знания языка).

Расскажу на примере одного моего ученика. Андрей (имя изменено) — бэкенд-разработчик на Go уже с коммерческим опытом. На прошлой работе он писал event-driven-сервисы на Kafka, делал саги и валидацию на gRPC. В Go перекатился с языка C: по совету старшего коллеги выучил язык примерно за полтора месяца. Практиковал всё самостоятельно.

Собеседовался Андрей в крупную компанию, первым этапом был HR-скрининг на 25 минут. Скрининг шёл по обычной схеме: знакомство, вопрос, насколько кандидат изучил вакансию, рассказ рекрутера о компании, прошлый проект, переезд и причина ухода, работа в команде, технические вопросы по чек-листу, а в конце деньги и следующие этапы.

Где-то на 20-й минуте HR-менеджер дошла до технических вопросов. На вопросы про конкурентность и параллельность, data race и синхронизацию горутин Андрей ответил уверенно, как и на все технические вопросы до этого. Но один вопрос заставил Андрея замолчать на 20 секунд.

Что HR решает за эти 25 минут?

HR задала вопрос: «Чем модуль отличается от пакета?», и Андрей замолчал. Да, думать над вопросом — это нормально, но 20 секунд считается уже долгим ответом. После этого момента тишины Андрей сказал честно, что не знает ответа на этот вопрос.

Когда я смотрел запись, этот момент зацепил меня первым. Потом я пересмотрел звонок с начала, и оказалось, что эта тишина далеко не самая большая проблема, которая понизила шансы Андрея. И чтобы объяснить почему, сначала расскажу, чем вообще занят рекрутер на скрининге.

HR, HR-менеджер или по-другому рекрутер решает одну вещь: пускать тебя на техническое собеседование или нет. Код он оценивать не умеет и, в целом-то, и не должен. У него в руках список ключевых слов из вакансии и умение на слух определять, рассказывает ли человек правду и делал ли он это всё самостоятельно.

Если свести вопросы скрининга к сути, то их 3:

  • Хочет ли человек именно к нам?
  • Не пропадёт ли он до первого рабочего дня?
  • Не будет ли с ним проблем на работе?

Всё остальное — способы это выяснить. Вопрос про вакансию проверяет интерес, вопрос про прошлую работу проверяет, не сбежит ли он и от нас через полгода.

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

Вот что валит людей чаще всего:

  • рассказ о себе на пять минут вместо двух;
  • «ушёл из-за конфликта» — рекрутер думает, что в новом коллективе есть высокий шанс повтора предыдущей ситуации;
  • «слабых сторон нет, я перфекционист» — ровно то, что рекрутер слышал уже сотни раз;
  • долгие паузы перед ответом;
  • заученный текст, который человек произносит будто бы по бумажке.

Технические вопросы валят реже.

Хорошая новость: на скрининге из раза в раз спрашивают одно и то же. Поэтому подготовиться к нему можно за один вечер.

Звонок по минутам

Теперь сам звонок. Иду по небольшим отрезкам записи и пишу, что рекрутер проверял в каждый момент. Далее оценка из моего разбора по пятибалльной шкале.

0:00–3:00. Знакомство

Первый вопрос почти на любом скрининге один и тот же: насколько ты успел ознакомиться с вакансией и компанией. Андрей сразу сказал, что не помнит, чем компания занимается. Дальше HR-менеджер несколько минут пересказывала ему описание вакансии, а он слушал. Для рекрутера это однозначный сигнал: человек бездумно рассылает отклики, а затем даже не готовится к созвону. Открыть сайт компании за пять минут до звонка — это пол, ниже которого опускаться нельзя.

Моя оценка: 2/5.

3:00–7:00. Стек и «почему Go»

А вот дальше случился, на мой взгляд, лучший момент звонка. Андрей перебил рекрутера и спросил, какой у них стек, какие брокеры и базы. Перебивать, конечно, так себе, лучше было дать договорить. Но вопрос был по делу, и разговор из допроса превратился в диалог (за такой ход 4/5). На «почему Go» Андрей тоже ответил хорошо: рассказал, что в предыдущем языке, C, ему мешали проблемы с памятью, а старший коллега посоветовал Go. И далее Андрей привёл пример, где заменил PHP-кроны воркером на Go. По такому ответу HR понимает, что человек пишет на Go регулярно.

Моя оценка: 4/5.

7:00–10:00. Прошлый проект

Здесь Андрей на 3 минуты ушёл в архитектуру: event-driven, хореография, саги, валидация на gRPC. Было слышно, что он рассказывает свою историю. Только рекрутер не взвешивает сагу против оркестрации, и сильный ответ Андрея погряз в «короче», «типа» и «вот». Для HR хватило бы 4-5 предложений: что за продукт, твоя зона ответственности, один результат.

Моя оценка: 3/5.

10:00–13:00. Почему ушёл, где живёшь, готов ли к переезду

Самый острый и важный отрезок звонка. Именно здесь Андрей потерял больше, чем на вопросе с молчанием на 20 секунд, поэтому разберу его отдельно ниже.

13:00–19:00. Работа в команде и ошибки

Вопросы про конфликты, выбор технологий и ошибки. И тут прозвучал один из самых сильных ответов звонка. Андрей рассказал историю с предыдущего места работы, как однажды не успел с ресёрчем по выносу сервиса: вовремя поднял флаг лиду, поменял подход и попросил ревью. Ответственность и коммуникация — именно то, что хотят услышать. Андрей рассказал отрывисто и снова со словами-паразитами, но по содержанию ответ был сильный.

Моя оценка: 4/5.

19:00–21:30. Технические вопросы с листа

Тот самый момент с модулем и пакетом и ступором на 20 секунд, про него отдельный раздел ниже.

21:30–25:00. Следующие этапы, деньги, вопросы

Рекрутер рассказала, что дальше: техническое собеседование с лидом, лайвкодинг, финал с руководством. Потом спросила про зарплатные ожидания, к этому я тоже вернусь. В конце Андрей разумно отложил технические вопросы до встречи с лидом и спросил про помощь с переездом. Ответ, кстати, порадовал, потому что компания оплачивает билеты и половину месячной аренды.

Моя оценка: 4/5.

10:00–13:00: где Андрей потерял больше всего

Возвращаюсь к отрезку, который я пропустил. Технических вопросов в нём не было вообще. Зато большая часть минусов прозвучала в этой части скрининга. В каждом ответе Андрея рекрутер слышал детали, которые намекали на одно: с этим человеком могут быть проблемы.

Почему ушёл с прошлой работы

Моя оценка: 3/5. HR-менеджер спросила, почему Андрей ищет новое место работы. На что он ответил честно и назвал 3 причины:

  • В компании ходили слухи, что сотрудникам придётся переезжать в другой город.
  • Он боялся, что его сократят.
  • И дела у компании шли так себе, денег больше не становилось.

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

Ту же самую правду можно рассказать по-другому: «Контракт закончился. Ищу проект, которым пользуется всё больше людей, и с удалённой работой». Факты те же, но разница в подаче и подобранных словах.

Лишние новости

Моя оценка: 3/5. Потом HR-менеджер спросила, где Андрей живёт. Он назвал свой город. В целом, это исчерпывающий ответ, которого было достаточно. Но Андрей добавил, что про его регион в последнее время в новостях пишут тревожные вещи. Рекрутер сразу начинает думать, будет ли человек стабильно выходить на связь.

Размытый ответ про переезд и чужое приглашение

Моя оценка: 2/5. Дальше вопрос в лоб: готов ли Андрей переехать. Он ответил: «Зависит от продукта». Для рекрутера этот неуверенный ответ звучит как «не очень-то я к вам и хочу».

Следом Андрей рассказал, что его уже зовут на работу в другую страну, и если за 2,5 недели ничего не найдётся, он уедет туда. Ему казалось, что так он покажет свою ценность: смотрите, я нужен и другим. Но для рекрутера это означает другое: человек вот-вот уедет, значит тратить на него время уже не имеет смысла.

Такой «козырь» работает в самом конце, когда компания уже приняла решение тебя взять и вы обсуждаете зарплату. Тогда фраза «меня зовут и в другое место» помогает поторговаться. На первом звонке тебя ещё никто не зовёт, и этот «козырь» играет против тебя.

Обида на прошлых работодателей

Моя оценка: 3/5. Когда разговор зашёл о стабильности, Андрей сказал: «Стабильность — смешная история в отношении к сотрудникам». В этой фразе слышна некая обида на работодателей.

Рекрутер сам работает в компании и отвечает за то, кого она наймёт. Если кандидат уже обижен на работодателей, рекрутер подумает, что такое отношение будет и в нашу сторону. Брать такого человека никто не захочет.

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

Ответил вопросом на вопрос

Моя оценка: 3/5. HR-менеджер спросила: «Что для тебя важно в работе?». Андрей сначала ушёл от ответа и начал рассуждать, что у каждого свои потребности. Рекрутера интересуют его личные потребности, а не общие слова. После этого она делает вывод, что человек не знает, чего сам хочет.

Потом Андрей всё-таки ответил. Ему важны 3 вещи: польза от его работы, нормальная команда и общение с коллегами после работы. И ответ действительно неплохой, но дольше всего Андрей говорил про общение после работы. И даже вспомнил, что в одной из прошлых компаний коллег интересовала только Дота.

Для рекрутера это могло означать следующее: для человека весёлые коллеги важнее самой работы. Лучше говорить в другом порядке. Сначала про работу, какие задачи интересны и какую пользу хочется приносить, а про команду и общение потом, одним предложением.

Деньги

Моя оценка: 3/5. Последний минус прозвучал уже ближе к концу звонка, на 23-й минуте. Андрея спросили, сколько он хочет получать. В вакансии зарплата была указана диапазоном от одной суммы до другой. Андрей взял большую сумму из вакансии и сказал, что меньше не хочет.

Выглядит хитро. Но цифру он просто взял у компании, а свою цену так и не назвал. Правильнее заранее посмотреть, сколько обычно платят за такую работу. И назвать свою сумму исходя из этого.

Итог по этому отрезку простой: на технических вопросах Андрей держался уверенно, а рассказ о себе его подвёл.

Двадцатая минута: зачем HR задаёт технические вопросы, если он не понимает код

Теперь про двадцатую минуту. Сначала о том, зачем рекрутер вообще задаёт технические вопросы. Он же не программист и сам не отличит правильный ответ от неправильного.

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

Технические вопросы у рекрутера заранее записаны на листе. Андрею задали 4:

  • чем конкурентность отличается от параллельности?
  • что такое data race?
  • как синхронизировать горутины?
  • чем модуль отличается от пакета?

Рядом с каждым вопросом у рекрутера записан правильный ответ. Проверить, насколько глубоко ты разбираешься, он не может. Зато слышит, есть ли в ответе нужные слова и звучишь ли ты уверенно. Человек, который каждый день пишет код, отвечает спокойно и своими словами. Ответ, выученный наизусть, звучит как текст, который читают с листочка. Рекрутеры это умеют различать.

На первые 3 вопроса Андрей ответил своими словами и правильно (моя оценка: 4/5 за каждый). А на вопросе про модуль и пакет он растерялся (моя оценка: 2/5). И даже если честно ответить «не знаю», это будет хуже, потому что для программиста на Go это база, как таблица умножения. На следующем этапе его спросят уже подробнее на эту тему. Но есть хорошая новость: разобраться в этом можно за один вечер.

Бывают случаи и наоборот. Если весь разговор ты звучал уверенно, рекрутер может даже подсказать. Со мной так однажды было. Я запнулся на каком-то вопросе и попросил повторить его другими словами. Этого HR делать не стала, но назвала технологию, которая была у неё в правильном ответе. Я сразу понял, о чём речь, ответил и прошёл на следующий этап.

Что подготовить до звонка

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

  • Узнай, чем занимается компания. Выдели всего 5 минут на сайт и описание вакансии: что за продукт, кто им пользуется, на чём он написан. Андрей этого не сделал и получил 2 из 5 в первые же минуты.
  • Приготовь 2-3 вопроса про продукт и технологии. Задай их, когда рекрутер закончит рассказ о компании. Так скрининг из допроса превращается в разговор, как это случилось у Андрея.
  • Расскажи о прошлом проекте в 5 предложениях. Что за продукт, за что отвечал ты, один результат с цифрой. Подробности про устройство системы оставь для технического собеседования.
  • Сформулируй, почему ушёл. Для каждого места работы отдельно. Поделись тем, к чему стремишься и что желаешь видеть. И потренируйся дома заранее. Проговори это вслух, потому что импровизация здесь может сильно всё испортить.
  • Ответь прямо про город, формат работы и переезд. Без сомнений, общих слов и невнятных формулировок.
  • Посчитай свою зарплату заранее. Посмотри, сколько обычно платят за такую работу, и назови свою сумму «от» и «до». Лучше не брать за основу цифры напрямую из вакансии.
  • Повтори основы, которые спросят по листу. Для Go это те самые 4 вопроса: чем конкурентность отличается от параллельности, что такое data race, как синхронизировать горутины и чем модуль отличается от пакета. Если на какой-то вопрос не получается ответить за минуту, его стоит повторить.

Что в итоге

Несмотря на все ошибки, которые я разобрал выше, Андрей прошёл на следующий этап.

На скрининге рекрутер проверяет 3 вещи: хочешь ли ты работать именно в этой компании, точно ли выйдешь на работу и не будет ли с тобой проблем. Подготовиться к этому гораздо проще, чем выучить Go. Хватит одного вечера и списка выше.

5 вопросов на собеседовании Go-разработчика, которые задают почти всегда →Оригинальный пост в Telegram →