Как нанимать крутых инженеров: работающие приемы для собеседований
Привет! Меня зовут Алексей Стратонов, я экс-техлид Авито Недвижимости. До Авито я 8 лет проработал в аутсорсе: управлял четырьмя отделами, успел нанять и уволить многих, в том числе руководителей. В аутсорсе есть специфика — зарплаты тут ниже, а задачи те же, что и в продукте. Поэтому тимлид должен уметь собирать команды под определенный проект и качественно собеседовать.
В статье рассказываю, какие моменты напрягают меня в кандидатах, а какие, наоборот, подкупают. Этот текст будет полезно прочитать молодым лидам, которые только начинают нанимать самостоятельно. Если вы уже уверенно чувствуете себя на собеседованиях, то все, что я упомянул, покажется вам знакомым. Но проверить свои знания не помешает :)
Что внутри статьи:
Мои «нет» в кандидатах
Обычно люди основательно готовятся к собеседованиям, но заученные ответы на вопросы обычно не отражают реальных знаний и опыта кандидата.
Хорошая новость в том, что вычислить таких ребят просто: на финальном этапе собеседования задавайте им открытые вопросы или уточняющие, если они отвечают односложно и стандартно. Как пример — один из финальных вопросов: «в чем заключается интерес бизнеса?». Если кандидат отвечает простое «в прибыли», можно уточнить: «а существуют ли бизнесы, главный интерес которых — не прибыль?». Так вы поймете, как человек мыслит и понимает ли, о чем говорит. Для меня важно услышать рассуждение человека, поэтому можно задавать больше проверочных вопросов:
любой ли бизнес нужен для зарабатывания денег?
а как же пирамида Маслоу?
а где здесь интересы пользователей? Как они сходятся с интересами бизнеса?
С лайвкодингом та же история — его легко натренировать на задачах из интернета. Но важно, чтобы кандидат не просто хранил в голове знания в формате «проблема-решение», а понимал, как они рождаются. Поэтому нужно выяснить, понимает ли человек то, что пишет.
Обычно хороший специалист владеет несколькими языками программирования хотя бы на уровне понимания. Это позволяет широко смотреть на проблемы и находить нетривиальные решения. Например, декораторы в Python — это более мощный инструмент, чем аннотации в Java. А зная, как работают потоки в Java, легко разобраться с горутинами в Go.
Я собрал несколько моих «красных флагов» в кандидатах — ниже расскажу про них подробнее.
Инженер банально и односложно отвечает на вопросы
Разберу это на примере реального вопроса с собеседования.
Вопрос: «Был ли ты с чем-то не согласен внутри своей команды? Как ты решал эту проблему?»
90% кандидатов отвечают, что их не устраивали длинные митинги — это дефолтный ответ. Обычно в командах есть много процессов, и если самое интересное, что смог выбрать инженер, это проблема длинных встреч — значит он был не до конца погружен в процессы своей команды.
Плохой диалог с кандидатом:
- Что тебя не устраивало в процессах команды?
- Длинные митинги
- Как ты решил эту проблему?
- Пошел к тимлиду, и он решил разделить большую встречу на несколько маленьких.
Почему? Тимлид всё решил за кандидата — это говорит о том, что человек не особо заинтересован в улучшении процессов и, возможно, придумал этот ответ на ходу.
Чуть лучше, но все равно не очень:
- Что тебя не устраивало в процессах команды?
- Длинные митинги.
- Как ты решил эту проблему?
- Предложил тимлиду разделить встречу на несколько маленьких.
- Какие плюсы видишь у этого решения?
- Встречи стали проходить быстрее, освободилось больше времени на задачки.
Почему? Кандидат сам предложил решение тимлиду — уже неплохо. Но плюс разделения встреч слишком очевидный и не опирается на контекст работы команды. Важно понимать, почему практикуются именно длинные встречи: возможно, это важно для совместной работы нескольких направлений. Тогда разделить встречи — это плохая идея, потому что нужен будет дополнительный синк.
Лучший ответ:
- Что тебя не устраивало в процессах команды?
- Длинные митинги.
- Как ты решил эту проблему?
- Сначала предложил разделить митинги по направлениям разработки, но потом обсудил с тимлидом, и мы решили разделить их по проектам. Тогда коллеги будут ходить на встречи только по своим задачам и не тратить время на другие.
Почему? Кандидат предложил решение и доработал его вместе с тимлидом — значит он инициативный и умеет работать в команде. А решение сделать отдельные встречи под каждый проект действительно экономит время.
Инженер не умеет планировать
Может показаться, что на собеседовании невозможно проверить, как человек планирует. Но на самом деле это легко: нужно спросить про внерабочие планы кандидата на полгода, год и три года. Это даст понимание, умеет ли человек планировать краткосрочно, среднесрочно и долгосрочно. Худший ответ: «А как в наше время можно что-то планировать?». Для меня это серьезный красный флаг — человек не берет ответственность за свою жизнь в свои руки и рассчитывает, что все решится как-нибудь само.
Но если у кандидата есть планы только на полгода — скорее всего, это низкоквалифицированный инженер. У нас в Авито часто бывают абстрактные задачи: например, нужно сделать профиль риэлтора. Никаких больше вводных — и инженер уровня Е5 должен сам разобраться в ней, задать вопросы тимлиду и спрогнозировать сроки реализации. Все это невозможно, если инженер не умеет планировать долгосрочно: тогда посыпятся все дедлайны.
Мои «да» в кандидатах
Теперь к «зеленым флагам» — собрал их по убыванию важности:
Кандидат точно знает, чего хочет
Это, опять же, про планирование. Однажды у меня на собеседовании был 22-летний дата-инженер, который учился на бэкендера в университете. Он хотел начать применять знания, которые получает в ВУЗе, на практике, а предыдущее место работы не могло дать ему эту возможность прямо сейчас — только через год. Кандидат решил не ждать и поискать другое место — и меня подкупило то, что он четко знал, что ему нужно от работы.
Кандидат рассуждает и задает вопросы
Скажу очевидную вещь, но нет ничего хуже, чем молчаливый и скрытный человек на собеседовании. Если у инженера нет вопросов по процессам в команде, вашим практикам и задачам, то он точно не заинтересован в проекте.
Кандидат открыт к общению
Если человек улыбается и подготовлен к собеседованию — это сразу дает хорошее впечатление. У меня бывало такое, что кандидат проводил нашу встречу за рулем — считаю это большим неуважением к собеседнику.
Кандидат не читерит
Всегда видно, когда человек пользуется подсказками: «книжные» ответы из ChatGPT или со слитых собеседований, использование заумных слов бросаются в глаза. Когда у меня есть подозрение, что кандидат откуда-то читает ответы, я задаю ему один и тот же вопрос с интервалом — такие ребята обычно отвечают на них по-разному.
Немного про возраст
И я сейчас не про эйджизм: у нас есть ожидания от каждого возраста, и это нормально в контексте найма в команду. Например, если человек в 40 лет постоянно путешествует и не живет в одном месте — это показатель нестабильности в жизни. А для 20-летнего — это нормально и не будет вызывать вопросов.
Для разных возрастов будут интересны разные проекты: разработчику до 25 лет чаще всего разбирается во всем с горящими глазами, а человеку старше 30 уже важно быть ментором и иметь статус эксперта в команде.
Возраст может быть и красным флагом: если человеку 30 лет, а последние 2 года он нигде не работал, это напрягает. Если до этого времени у человека нет стабильности в жизни, вряд ли стоит ждать ее на работе.
Чем мотивировать сотрудников оставаться в компании (кроме денег)
Не будем лукавить: когда люди ищут работу, они ориентируются, в первую очередь, на уровень зарплаты. Но денежная мотивация не самая стойкая — к каждому увеличению дохода рано или поздно привыкаешь, и он уже не подстегивает тебя продуктивно работать. Поэтому важно искать другую мотивацию, которая не связана с деньгами напрямую. Для этого нужно понять, что сотруднику интересно помимо денег. Обычно людей привлекает следующее:
Прозрачность
Каждый член команды должен понимать, что он делает, и как лично его работа влияет на цели и метрики команды. Для этого тимлиду нужно не просто раздавать задачи подчиненным, а давать им ее бизнес-контекст.
Каждый день у тебя есть стендап: не все понимают, зачем он нужен. На стендапах я всегда выступаю первый: мои ребята должны знать, чем занимается тимлид, так же как и я знаю, чем заняты они. Это тоже элемент прозрачности.
Еще важна прозрачность внутри всей компании: человеку должно быть понятно, на чем компания зарабатывает. Для этого в моей команде есть встреча, где продакт рассказывает про бизнес-контекст наших задач.
Профессионализм коллег
Специалисту важно быть в окружении крутых коллег, которые горят разработкой и проектом. Многие технические решения инженеры принимают самостоятельно, без участия тимлида. Но руководителю тоже нужно проявлять свою техническую экспертизу: даже если разработчик сильнее тимлида разбирается в какой-то теме, он должен понимать, что тимлид всегда поможет найти плюсы и минусы его решения.
Ответственность и безопасность
В Авито есть архитекторы, с которыми инженеры согласуют придуманные технические решения. И у разработчика может возникнуть мысль: зачем самому продумывать и прорабатывать идею, если архитектор может сделать это за меня? Я стараюсь это пресекать: инженер должен быть лидом своей идеи и уметь брать ответственность за нее.
Тимлид должен создать для команды безопасную среду, в которой они не будут бояться ошибаться — потому что ошибка не будет фатальной. Тогда и брать ответственность будет легче.
Неформальное общение
Мы проводим с коллегами большую часть своей жизни, поэтому хочется, чтобы они были приятными людьми со схожими ценностями. Для дружеского общения существуют тимбилдинги и корпоративы, где как раз можно отдохнуть и поближе познакомиться.
Сотрудники на таких встречах отдыхают, а тимлиды — работают. Нам нельзя много пить и нужно найти время на каждого своего подчиненного, чтобы поговорить по душам. Это как обычный 1-2-1, только с пивом.
И помните: руководитель не должен быть лучшим менеджером и разработчиком в команде — это мешает его подчиненным расти. В команде должны быть люди, которые могут сами принимать решения из своей роли, чтобы тимлид не замыкал все процессы на себе. Не должно возникать ситуаций, когда без лида в команде ничего не могут решить — тогда у тимлида не будет соблазна начать заниматься микроменеджментом, и он сможет спокойно уйти в отпуск :)
Небольшое напутствие тимлидам
Чтобы чувствовать себя уверенно на собеседованиях, их нужно провести около 100 раз. Тут, как и в любом деле, нужны опыт и насмотренность — поэтому почаще ходите на собеседования других тимлидов, чтобы слушать и запоминать интересные фишки.
Общайтесь с тимлидами и юнит-лидами, задавайте им вопросы и запоминайте, что они говорят. Эти специалисты сфокусированы на управлении людьми, поэтому смогут дать ценные советы по карьерному развитию.
Не бойтесь совершать ошибки — совсем без них не получится, даже если вы хорошо подготовитесь заранее.
А какие лайфхаки применяете на собеседованиях используете вы? Доводилось ли вам сталкиваться с какими-то из этих приемов в качестве соискателя? Расскажите о своем опыте и поделитесь мнением в комментариях!
Удачи вам на тимлидском пути!