Подбор кандидатов в компанию — вопрос важный и тонкий. Вы ищете команду мечты. Мы хотим найти человека, с которым сможем плечом к плечу разрабатывать сложные фичи, бороться с багами и непринуждённо общаться за чашкой кофе. Эти стремления, как «струи Арагвы и Куры», ведут в одно место встречи — техническое интервью.
Другие этапы тоже важны: изучение резюме, скрининг, общение с рекрутером, знакомство с командой. Но, без обид, коллеги, кульминация этой пьесы — собеседование с техническими специалистами.
Меня зовут Александр Гирев, я Android-разработчик в Альфа-Банке, работаю в команде платежей и переводов в приложении для физических лиц. Я участвую в технических собеседованиях и знаю, что происходит по ту сторону «Зума» во время интервью :)
Кажется, описывать процесс отбора в целом и собеседований в частности становится правилом хорошего тона. Недавно наш техлид, спикер митапов и просто хороший парень Абакар Магомедов рассказал о некоторых тонкостях подготовки к собеседованию в статье 8 нетипичных советов Android-разработчику перед интервью.
Сегодня мы продолжим тему собеседований. Я расскажу, чего мы ожидаем от кандидатов на позицию Android-разработчика. И на что вам нужно обратить внимание, чтобы получить заветный оффер от Альфа-Банка.
Начнём с очевидного, но важного момента.
Собеседование — это не допрос
Это, скорее, деловая встреча будущих партнёров, на которой мы хотим узнать друг друга получше.
Мы такие же разработчики, как и вы. У нас такие фичи, баги и пул-реквесты. И мы вас точно не укусим. Хотя бы потому, что сидим от вас по ту сторону экрана:) Поэтому настраивайтесь на разговор равных людей, у которых есть общий проект под названием «Вакансия в команде мечты для хорошего программиста».
И ещё небольшой инсайт: для многих собеседующих интервью — такой же стресс. Мы тоже иногда волнуемся, когда проводим собеседование.
Правило хорошего тона на собеседовании — вы готовились к нашей встрече
В каждой компании свои нюансы отбора. Но есть правило, актуальное для любой команды с хорошей репутацией — компания ценит, когда кандидат готовился к интервью. У этой фразы несколько граней.
Во-первых, вы позаботились о месте и времени для собеседования, технике и связи. В жизни бывает всякое. Сосед начал сверлить, пропал свет или не получилось найти укромное место, и вы вынуждены проходить собеседование на лавочке в парке. Но вы сделали всё, что в ваших силах — мы это оценим. Вы показали, что заинтересованы в нашей встрече и в том, чтобы она прошла гладко и комфортно. Остальное решаемо.
Единственное обязательное условие — компьютер. В наших собеседованиях есть практические задачи, не получится решать их с телефона. Также желательна веб-камера. Собеседование вслепую — интересный способ рекрутинга, но нам хочется увидеть будущего коллегу хотя бы на экране монитора.
Во-вторых, вы попытались побольше узнать о нашей компании, проекте и команде. Это значит вы идёте на собеседование осознанно и знаете, в какую команду хотите попасть. Сюда же можно отнести наличие вопросов после интервью о команде, стеке, процессах.
В-третьих, вы подготовились по стеку, указанному в описании вакансии. Например, одно из must-have требований для нас — Dagger2. Одно дело, когда у вас нет большого опыта в работе с этой библиотекой. Совсем другой вопрос, когда вы даже не попытались компенсировать отсутствие практики хорошим изучением теории. Подумайте: мы указали в описании, что для нас важно (актуальные вакансии можно найти тут и тут), значит мы предполагали, что вы используете эту информацию по назначению :)
Зачем нужны вопросы на стадии знакомства?
Первая часть нашего собеседования — знакомство. Мы обычно просим рассказать об опыте, последнем проекте, стеке, с которым удалось поработать.
Интервью — это стресс. Этап знакомства помогает создать подходящую атмосферу для встречи, разговориться. И через 10 минут мы уже немного друг друга знаем, видим манеру общения друг друга.
Во время знакомства можно понять, под каким углом вы смотрите на определённые вещи и как привыкли решать проблемы. Этот тоже важно: у нас большая компания и много разных команд, в каждой из которых больше ценятся те или иные качества.
Ещё один пункт — любознательность. Нам интересно, как организована работа на других проектах и командах, какой там используется стек, как выстроены процессы. Поэтому иногда мы пользуемся возможностью, чтобы послушать про опыт ребят из других компаний.
Важны ли софт-скилы?
Есть мнение: времена, когда программисты сидели в углу и общались только с железками, прошли. Вы спросите меня, важны ли софт-скилы? Мой ответ: определённо, да.
Софт-скилы — понятие растяжимое. Для нашей команды важны качества:
коммуникабельность. Мы общаемся с бизнесом. Мы общаемся друг с другом. Иногда нам нужно обучать друг друга, уметь доступным языком объяснять сложные вещи. Или описать что-то в документации, чтобы облегчить жизнь сразу всей команде;
проактивность. Митапы, технические статьи, общение с ребятами из других компаний преумножают наш опыт, помогают развиваться как профессионалам и развивать наш продукт;
обучаемость. Способность к обучению, и, что важно, самообучению позволит разработчику быстро разобраться в сложной бизнес-логике или незнакомой фиче, выполнить задачу с использованием стека, с которым до этого не довелось поработать.
В процессе отбора кандидат оценивается комплексно. Наличие определённых качеств может компенсировать точки роста в других сферах. Например, если кандидат легко обучается, незнание теории или отсутствие опыта с каким-то фреймворком уже не выглядит таким критичным. При общем высоком техническом уровне, конечно же.
Здесь мы логически подошли к следующему пункту.
В каком формате проходит наша техническая часть?
На момент написания статьи в большинстве наших команд техническое собеседование включает 1 этап длительностью 1,5-2 часа. В команде платежей и переводов мы разделили собеседование на два этапа без изменения формата встреч. Поэтому мы встречаемся с кандидатом дважды: 40-минутный скрининг с 4-5 практическими задачами и основное собеседование на 1-1,5 часа.
Формат вопросов — практические задачи, примеры кода, в которых нужно исправить ошибку или сказать, что выведется на экран. Есть практические задачи на подумать: мы предложим описать несколько вариантов решения того или иного кейса. Решение задач помогает увидеть, как кандидат мыслит и связывает теорию и практику.
Мы стараемся эффективно использовать общее время. Поэтому в рамках одной задачи мы можем затронуть сразу несколько тем. Например, для решения задачи вам могут понадобиться хорошие знания Dagger2 и жизненного цикла Activity.
Отдельно лайфкодинга в чистом виде, архитектурной секции и чего-то вроде спортивного код-ревью у нас нет. Многие наши задачи содержат в себе элементы этих форматов собеседований.
Нужно ли правильно ответить на все вопросы?
Многие программисты требовательны к себе. Неправильный или неполный ответ на собеседовании может вывести их из рабочего состояния.
Важно сказать, что мы не проводим собеседование под конкретный грейд, например, строго на уровень Middle. Чем больше правильных ответов даст кандидат, тем выше будет его грейд по результатам интервью.
Наши задачи составлены так, чтобы сначала проверить у вас базовые знания конкретной темы, которых будет достаточно, чтобы работать на наших проектах. Если кандидат показывает уверенные знания, мы можем задать дополнительный вопрос, более глубокого уровня. И правильный ответ здесь будет плюсом, который скажется на итоговой оценке.
Другой вопрос в минимальном пороговом уровне, чтобы попасть в команду. Тут всё будет оцениваться индивидуально.
Во-первых, что-то можно забыть, что-то не критично не знать, а что-то очень легко учится.
Во-вторых, как мы уже обсудили, иногда небольшие пробелы в технике могут быть компенсированы другими качествами либо хорошими знаниями в других темах. Мы можем решить, что вы способны разобраться в отдельной теме, просто либо не сталкивались с ней на практике, либо давно не повторяли теорию.
В-третьих, есть знания, без которых на проект попасть нельзя. Это must-have список технологий из описания вакансии: Dagger2, RxJava, корутины, паттерны архитектуры, особенности работы с многомодульными приложениями. Здесь тоже можно что-то не знать. Но в общем у вас должны быть уверенные знания.
И ещё один момент. Задача интервьюера — проверить знания кандидата и его понимание сути вопроса, а не проверить его память и как хорошо он выучил базовые определения. Поэтому ответ лучше строить так, чтобы максимально показать, что вы понимаете, о чём говорите.
Представьте, что вы общаетесь с начинающим программистом и вам нужно объяснить, как работает оператор flatMap() из RxJava. Кажется, без развёрнутого описания и практического примера сделать это будет достаточно сложно. На интервью задача схожая: вам нужно показать интервьюеру, что вы понимаете, о чём говорите, поэтому практические примеры будут кстати.
Случается, что вам задают вопрос, ответа на который у вас нет. Если характер вопроса позволяет, можно поразмышлять, попытаться логически найти ответ на вопрос. Например, вы не знаете, что делает какой-то оператор в RxJava. Но из его названия можно предположить, что он должен был бы делать.
Плюс все библиотеки и фреймворки написаны такими же программистами, как и мы. Значит никто не мешает предложить своё решение той или иной задачи. Однажды мы проводили собеседование с Абакаром. Кандидат не знала ответа на вопрос, но начала рассуждения со слов: «Я не помню, как это работает в Android на самом деле, но если бы я это реализовывала, то сделала бы так». После этого почти точно описала имеющуюся нативную реализацию. Вывод: даже если вы не знаете ответа, попробуйте порассуждать.
Иногда вопрос подразумевает знание точного ответа, либо вы в рассуждениях зашли в тупик. В таких случаях лучше будет сразу просто сказать «Я не знаю» и продолжить общаться на следующий вопрос. Здесь нет ничего зазорного, все мы люди. Интервьюеры тоже не держат диплинк на Гугл в голове и часто узнают от кандидатов что-то, чего раньше не знали или не встречали. Плюс признание пробела в знаниях — это первый шаг к тому, чтобы начать его восполнять :)
Что происходит после технической части?
Этап после технической части — ответы на вопросы кандидата. Здесь мы рассказываем о нашем проекте, процессах внутри команды, как устроено взаимодействие между разработчиками, какой стек используем. Если у кандидата вопросы появились после собеседования — никаких проблем. Их можно будет задать через HR-специалиста.
После интервью наступает самый ответственный момент — составление фидбека и принятие решения, подходит ли кандидат для работы на проекте. Оцениваем комплексно по критериям: релевантность предыдущего опыта кандидата, уровень технических знаний, умение рассуждать и логически мыслить, насколько развиты подходящие для нас софт-скилы.
Фидбек стараемся передать в течение 1-2 рабочих дней. Если результат положительный, кандидат проходит на следующий этап — знакомство с командой. Обычно это встреча на 20-30 минут с менеджером продуктовой команды и техлидом.
Бывает, что кандидат в целом понравился, но немного не хватило опыта или знаний по нашему стеку. Мы можем решить, что хотим провести интервью ещё раз через некоторое время. Обычно пауза составляет 6 месяцев. Этого времени должно быть достаточно, чтобы подтянуть недостающие знания.
Независимо от результатов собеседование — ценный опыт. Это возможность проверить свои знания, узнать точки роста и пообщаться с коллегами по цеху, обменяться опытом.
Желаю вам удачи на собеседовании и чтобы помимо этих приятных моментов вы получили заветный оффер в команду мечты :)
Комментарии (8)
SerJook
04.08.2023 09:16+1Вечно этим компаниям так называемый "релевантный" опыт подавай.
А взять хорошего специалиста и доучить под ваши требования слабо?
Вот поэтому вакансии и висят незакрытыми месяцами.
Ales_Ivanov Автор
04.08.2023 09:16Как было сказано в статье, мы оцениваем кандидата комплексно. И если нет релевантного опыта, но специалист действительно хороший, мы можем принять решение о найме человека. Даже если у него не было опыта финтехе. Насчет релевантного опыта по технологиям тоже все зависит от конкретного случая. Как было написано выше, отсутствие достаточного практического опыта можно компенсировать твердыми знаниями
Что касается "доучить" - этот вопрос сейчас обсуждается. Возможно, будет объявлен набор на обучение для ребят с практическим опытом. Чтобы за время курсов довести свой уровень до наших требований.
Ну и насчет незакрытых месяцами вакансий - у нас периодически интенсивно идет набор на новые позиции, в новые команды. Поэтому вакансии не висят незакрытыми. Даже открываются новые. Наша команда растет, находятся ребята, чей опыт и уровень соответствует нашим требованиям.Leetc0deMonkey
04.08.2023 09:16Что касается "доучить" - этот вопрос сейчас обсуждается. Возможно, будет объявлен набор на обучение для ребят с практическим опытом. Чтобы за время курсов довести свой уровень до наших требований.
Специалиста не надо "доучивать". Тем более, не на курсах это делается. Специалисту дают задачу, а дальше он сам. Ну, какие-то ориентиры куда можно копать, а куда не стоит.
perecfx
04.08.2023 09:16+1"Дреггер2 маст", а если кандидат всегда Коин использовал, что он, Дреггер не доучит у вас на рабочем месте?
Ales_Ivanov Автор
04.08.2023 09:16"Во-вторых, как мы уже обсудили, иногда небольшие пробелы в технике могут быть компенсированы другими качествами либо хорошими знаниями в других темах. Мы можем решить, что вы способны разобраться в отдельной теме, просто либо не сталкивались с ней на практике, либо давно не повторяли теорию"
Evolinc
04.08.2023 09:16+1Спасибо за статью. Читая данную информацию осознаю, что кандидату, желающему попасть в альфабанк, будет полезно ознакомится с данной информацией. Она даст небольшое понимание внутренней кухни, что может помочь снизить стресс перед событием N.
Есть вопрос о том, какие были предпосылки ввести корректировки в процесс собеседования, сделав отдельную техническую встречу-скрининг исключительно по задачам?
Ales_Ivanov Автор
04.08.2023 09:16Предпосылок было несколько:
1) в целом это общепринятый подход в других компаниях, разделять процесс собеседования на несколько этапов
2) снижается нагрузка как на кандидата, так и на собеседующих. У нас достаточно большой список тем, которые хотим спросить. Поэтому собеседование часто длится 1.5-2 часа. Достаточно сложно удерживать внимание и концентрацию в течение такого времени
3) такой подход позволяет пропускать на интервью кандидатов с достаточным пороговым уровнем знаний. Остальные могут получить фидбек и точки роста, что нужно подтянуть, чтобы попасть на 2 этап отбора
lizergil
Применяю с первого дня, сразу открылись точки роста!