Pull to refresh
Ситидрайв
Каршеринг с цифровой душой

Секреты технического собеседования от СТО с опытом 1000+ интервью

Level of difficultyEasy
Reading time6 min
Views16K

Привет, меня зовут Артём Пулявин, с 2022 года я занимаю позицию технического директора в Ситидрайве и отвечаю за всё IT в компании — от закупки серверов и ноутбуков до разработки и найма новых членов команды. За 20-летнюю карьеру я провёл более 1 000 собеседований и взял на работу более 100 айтишников. А в Ситидрайве за последние 2 года увеличил команду в 3 раза.

На Хабре уже есть статья от нашего HR-менеджера о том, как в компании выстроен процесс найма IT-специалистов. В этом материале я расскажу именно про этап технического собеседования: на что обращаю внимание при подборе новых членов команды в Ситидрайве и по каким критериям оцениваю кандидатов, а также дам рекомендации, как вести себя на финальном собеседовании. 

Обычно на интервью я проверяю, насколько хорошо кандидат умеет писать код, и оцениваю, комфортно ли ему будет работать с нашим темпом, командой, вольётся ли он в культуру компании. Поэтому для себя я разделяю процесс финального собеседования на 3 составляющие: первичный скрининг резюме, оценка hard и soft skills. 

ЭТАП 1: Скрининг резюме

Перед каждым собеседованием я просматриваю резюме кандидата — оцениваю насколько он соответствует нашим внутренним критериям и составляю список вопросов для уточнения. Да, у нас есть критерии идеального кандидата. Настолько идеального, что соответствовать им всем невозможно, я и сам по нескольким из них не подхожу 🙂

Логично спросить — а зачем вы тогда вообще их придумали? Всё просто — они помогают выбрать между 2 кандидатами и, опираясь на эти критерии, я могу собрать список уточняющих вопросов на собеседовании. Ниже приведу примеры.

Критерии для сотрудников уровня middle и senior

  1. Опыт работы в нашем стеке. Приветствуется, если кандидат уже работал на Go в 2–3 компаниях до нас. Но если он пишет, например, на C#, а на Go работал полгода, и при этом проявляет большой интерес к переходу на наш стек, это не станет препятствием для найма. И мы, как компания, даже поможем с обучением. На собеседовании я задам уточняющие вопросы, чтобы понять мотивацию перехода на новый стек, и убедиться в серьёзности намерений. 

  2. Опыт в продуктовой разработке. Кандидат должен понимать особенности продуктовой разработки, а ещё лучше — знать наш продукт. Здесь будет плюсом — заранее изучить предметную область, с которой предстоит работать. При этом, если кандидат не успел подготовиться и почитать подробно про деятельность компании — «минус балл» тоже не получит. 

  3. Множественный опыт работы. Для меня важно, чтобы кандидат имел опыт работы в более, чем 3 компаниях. Также если человек отработал 10 лет в одном IT-гиганте и вырос с junior до senior — это положительный фактор. Однако, если это небольшая компания с узким стеком — я буду задавать дополнительные вопросы, чтобы понять, насколько человек гибкий. Мне важно, чтобы кандидат смог быстро влиться в коллектив, вникнуть в наши проекты.

  4. Каждое место работы от 1 года, есть места от 2 и более лет. Компаниям выгодно, чтобы сотрудники работали как можно дольше, и если человек каждый год менял места работы, то какая вероятность, что у нас он проработает дольше? Это как раз тот маркер, по которому я сам не взял бы себя на работу несколько лет назад. У меня был опыт быстрого перехода из компании в компанию с разными проектами. Так, например, руководил разработкой электронной читалки в Alpina Digital, потом отвечал за серверную разработку FoodMate, которая влилась в Delivery Club, а после делал то же самое в FoodFox, которая стала Яндекс.Едой. В такой ситуации я буду уточнять, чем обусловлены такие переходы? Карьерный рост? Выгорание? Поиск себя? Закрылась компания? 

Список критериев для junior специалистов

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

ЭТАП 2: Проверка Hard skills

Дойти до этапа технического собеседования при найме — это уже успех. Чтобы этот успех с максимальной вероятностью превратился в оффер, полезно понимать логику нанимающего менеджера. 

На техническом интервью мне важно понять, как кандидат перфомит — сколько задач может закрыть за ограниченное время. А также оценить, как он работает в команде. Для этого заготовлено 4 стандартных задачи. 

  • Если человек сделал одну задачу — довольно слабо, но хорошо для джуна.

  • Две задачи — крепкий середнячок. 

  • Три — крутой «перформер». 

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

Разные задачи проверяют разные навыки

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

Во второй задаче главное требование оптимизация кода. Её выполнение показывает, может ли кандидат сэкономить число проходов, трату оперативной памяти. И это требование не озвучивается изначально — его нужно «вытащить» при получении задачи. 

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

Задачу можно сделать на разном уровне качества. Ключевое здесь — обговорить этот уровень до того, как начинать писать код. Банальный вопрос: «Что требуется: чтобы код просто выдавал нужный результат или чтобы это было оптимизированное решение?» — поможет не тратить лишнее время и покажет вас инженером, который может вести конструктивный диалог с заказчиком.

Можно взять подсказку

Бывает так, что кандидат упирается в одну задачу — иногда прямо в первую — и просто не может двигаться дальше. Опять же, это можно решить не только умением программировать, но и умением говорить. Например, напрямую сказать: «Эта задача совершенно не идёт. Есть ли другая, на которой я могу себя показать?». Я либо попытаюсь направить в нужное русло, либо просто дам следующую задачу.

Спрашивать напрямую, что тут нужно делать не лучшее решение. Продемонстрируйте ход своих мыслей, и это поможет получить дельный совет при минимальном минусе в карму: «Есть сомнения. У меня вот такая идея: <описание>. Я мыслю в правильном направлении или я зашёл не туда?».

Не стесняйтесь уточнять «правила игры» до написания кода и общаться в процессе. Лучше взять 2–3 подсказки и решить 3 задачи, чем решить 1 задачу, но без подсказок.

Можно даже загуглить!

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

Надо быть готовым во время собеседования:

  1. Работать быстро и перфомить.

  2. Общаться с заказчиком.

  3. Понимать, что задачи могут быть типовыми и нетиповыми.

  4. Оптимизировать предложенное решение.

ЭТАП 3: Проверка Soft skills

Техническое собеседование — это не только про написание кода. Инженер примерно 70% рабочего времени пишет код и 30% — общается с коллегами, менеджерами и другими командами. На техническом собеседовании соотношение такое же: 70% направлено на оценку написания кода и 30% — на то, как кандидат взаимодействует со мной в роли заказчика. 

Я часто проверяю soft skills во время решения задач на техническом собеседовании — уже на том этапе я могу понять, как человек будет справляться с разными ситуациями. По сути, когда я даю какую-то задачу, то смотрю не только, как кандидат её решает, но и как принял, какие вопросы задаёт, как комментирует работу, доводит ли до конца. 

Я также задаю уточняющие вопросы, чтобы проверить базовые качества эффективности кандидата: направленность на результат, саморазвитие, партнёрские отношения, ответственность и эффективность.

  1. Направленность на результат

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

  1. Направленность на саморазвитие

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

  1. Направленность на партнёрские отношения

Мы оцениваем навыки коммуникации кандидата с нами, чтобы предположить, как он будет общаться с другими членами команды. Важно, чтобы он мог установить контакт и быть открытым для понимания другой точки зрения. Я обычно прошу рассказать о ситуации, когда кандидат признал свою ошибку. Как он взаимодействовал с продактом? Были ли конфликты, которые нужно было разрешить?

  1. Ответственность

Чтобы оценить уровень ответственности, я могу спросить, что кандидат предпринимал, когда его работа не соответствовала результатам заказчика? Бывало ли, что результат работы не соответствовал его ожиданиям? 

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

Оценка и обратная связь

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

Tags:
Hubs:
Total votes 24: ↑13 and ↓11+4
Comments30

Articles

Information

Website
citydrive.ru
Registered
Founded
2015
Employees
501–1,000 employees
Location
Россия