Мы GeekFactor. Вместе с GetMentor мы помогаем разработчикам найти работу за границей, а компаниям подбираем подходящих кандидатов.
Главные этапы в собеседовании зарубеж — подача резюме, system design interview, coding interview и culture fit interview. На что обратить внимание и как готовиться, мы рассказываем в двух статьях.
В первой части мы поговорили о том, из чего состоит собеседование за рубежом, как составлять резюме и что нужно помнить, когда проходишь screening interview — разговор с эйчаром. В этой — раскроем подробнее тему coding interview, culture fit interview и system design interview.
Примечание: да, с текущими событиями найти работу с релокейтом стало сложнее. Но советы остаются актуальны — мы проверили.
Coding Interview. Можно ли устроиться без знания нужного языка?
Интервью по кодингу, кажется, знают все, так что расскажем о нём немного — поделимся лайфхаками и ресурсами.
Если вдруг вы не знаете, coding interview — это тот самый код на листочке про алгоритмы. Например, в Booking вам выдадут задачу: есть десятки бронирований, найдите пересечение по датам. Она привязана к условиям работы, и нужно будет подумать, чтобы написать наиболее эффективный алгоритм. Помогут в этом книга Cracking the Coding Interview, сайты LeetCode (о нём мы писали), HackerRank, Codeforces.
Сначала стоит определить: вы целитесь на конкретную позицию или в конкретную компанию? Если на конкретную позицию, то нужно знать конкретные технологии. Но если ваша цель — именно компания, то вам могут простить незнание языка, если вы готовы изучить нужный спек. Для этого вам нужно продемонстрировать, что вы понимаете, как решать проблемы, отличаете плохой код от хорошего, и можете решить задачу на своём языке программирования — только объясните при этом, что происходит.
Когда вам озвучивают задачу, главное — не начинайте сразу её решать. Подумайте над формулировкой: какие есть ограничения? Уточните условия и цель у интервьюера. Затем проговорите задачу вслух, обдумайте решение и только тогда начинайте его реализовывать.
Начинайте с малого. Проблемы решайте по очереди. Что-то не помните — скажите. Что-то не хотите писать или боитесь, что не успеете — скажите и озвучьте допущение, например, “Тут проверяем инпут на ошибки, будет время — напишу». Не бойтесь, если получается кривовато — лучше корявое решение, чем красивое, но нерабочее.
Комментируйте, что и почему вы делаете. Тогда собеседник будет понимать, какой у вас план, и сможет направить вас в нужную сторону. Ему нет смысла вас валить — ему нужен человек в команду, он хочет вас нанять.
Думайте вслух, уточните условия и ограничения. Тогда работодатель поймёт, что:
вы готовы консультироваться с коллегами в работе;
не побоитесь уточнить, если что-то непонятно;
и будете следить за чистотой кода.
Красный флаг для работодателя — когда разработчик:
сразу пошёл писать код;
пишет молча;
не подумал про граничные условия;
не проверил инпут на ошибки;
не видит проблемы во вложенных циклах :)
Кажется, что всё просто. Получается, кодинг интервью на софт скиллах пройти можно?
Первые 5 минут мы составляем мнение о кандидате — а остальные 40 ищем ему подтверждение. Если в первые 5 минут вы расположили к себе собеседника, его внимание сфокусируется на аргументах в вашу пользу, и он может закрыть глаза на незначительные проколы. Но харизма не заменит технические скиллы — это однозначно.
System Design Interview. Красные флаги, типы интервьюеров и советы от эксперта
На system design интервью никто не ждёт, что вы задизайните Spotify за час. Так зачем нужно это интервью, если есть техническое? Отвечаем — это эмуляция рабочего процесса в компании. Компания хочет убедиться, что у вы умеете решать проблемы, даже если на руках нет конкретного решения. Ещё вас проверяют на коммуникативные скиллы: как обсуждаете идеи, как общаетесь с коллегами.
Вот типичные челленджи, которые вам могут предложить:
Имейте в виду: от вас не ожидают, что вы за час выведете на прод продукт. Только час перформанса — и рассуждения о том, как бы вы создавали эту систему.
А теперь поговорим про зелёные флаги и красные флаги. Для всех интервью они вполне типичны, и половина из них ожидаемо касается софт скиллов.
Процесс прохождения интервью несложный. Вот общее описание процесса.
А вот, как стоит распределять время.
Важная часть интервью — прочитать интервьюера и понять, что ему интересно услышать. Если вы видите, что интервьюер интересуется рядом вопросов, выбирайте тему, с которой вам наиболее комфортно.
Интервьюеров можно условно разделить на пять типов.
Первый — любит помогать и может вмешаться, когда не нужно. В конце интервью у него может сложиться впечатление, что он всё сделал за вас. Этого нужно избегать. Советы слушайте внимательно, но придерживайтесь своих идей. Убеждайте в том, что это решение — ваше, а не его.
Второй тип — скучающий. Если его не встряхнуть, ничего не получится. С такими работают нестандартные или радикальные решения. И провокации. Скажите, например, «все эти ваши облачные технологии переоценены» — он проснётся и втянется в разговор. Правда, в этом случае вам придётся какое-то время стойко держать оборону, а за остаток интервью — попытаться подружиться.
Третий тип — новичок. Такие часто уверены в себе, а если видят, что вы не уверены или стесняетесь, могут отказать просто так. Им нужно показать, какой вы классный, прорекламировать себя. Оставшееся время можно провести уже в более продуктивном ключе. Важно: с ним следите за временем, потому что он может и забыть о тайминге.
Четвёртый тип — гуру. Они знают всё. Могут молчать — или наоборот, постоянно говорить, это не важно. Важно, чтобы вы были с ними на одной волне и слышали их. Один из способов заручиться их поддержкой — ссылаться на их слова или говорить что-то похожее.
Повторять постоянно за ними не нужно — в какой-то момент блесните сами, покажите, что умеете. Важно продемонстрировать, что вы понимаете, что вам ещё многому нужно научиться. Гуру, скорее всего, думает о себе так же, и подтвердив свою открытость новому, вы сможете привлечь их на вашу сторону.
Бывает и пятый тип — коллективное сознание, когда общаться приходится с группой. Всех прочитать будет сложно — поэтому придерживайтесь универсального решения. Будьте на позитиве, показывайте, что разбираетесь в теме, и задаете правильные вопросы аудитории. Постоянно проговариваете, на каком этапе находитесь, и следите за тем, чтобы они не упускали нить вашего повествования — например, банальное «С этим разобрались, идём дальше».
Общие советы
Не спешите с умозаключениями. Задавайте вопросы, чтобы проверить условия и предположения.
Если интервьюер предлагает вам озвучить свои предположения, запишите их.
Поймите требования задачи. Не забывайте о контексте бизнеса.
Думайте вслух. Обменивайтесь идеями с интервьюерами, предложите пару подходов.
Наденьте часы. Следить за временем — это ваша ответственность.
Старайтесь рисовать понятно, потому что схема может в любой момент усложниться.
Будьте готовы обсуждать уязвимости и бутылочные горлышки в ваших решениях.
Не сдавайтесь. Не паникуйте, попросите подсказать, если чувствуете, что застряли.
Интервью не заканчивается, когда вы определились с дизайном. Интервью заканчивается, когда вы прощаетесь. Имейте это в виду.
Практикуйтесь. Распечатайте карточки с вопросами, пусть ваш друг вытягивает их вслепую и задаёт вам.
Маленький совет: есть на Github system-design-primer. Там много классных задач, они расписаны поэтапно, как и решения — очень помогает в подготовке.
Насколько важно знание AWS, Azure? Кажется, в Штатах оно требуется везде
Сильно зависит от компании и вакансии. Где-то будет большим плюсом, если вы разбираетесь в одном из крупных Cloud-провайдеров. В России это не так актуально.
Company fit Interview
Многие компании западного типа практикуют company fit interview. Подавать его могут как company fit, team fit, culture fit. Это интервью помогает понять, подходит ли человек под процессы в компании. Бывает, что такое интервью проводится в начале, но чаще всего с ним сталкиваешься под конец.
Проходит в формате обычной беседы. Бывает, с вами разговаривает один человек, а бывает, приходится общаться с панелью интервьюеров — чаще с двумя, реже — с тремя. В паре часто один интервьюер более опытный. Он активно спрашивает и участвует в разговоре, в то время как второй больше слушает и учится. Иногда бывает что-то вроде stress interview, когда интервьюер специально задает провокационные вопросы и пытается вывести вас из равновесия.
Зачем оно нужно? У вас может быть прекрасный набор скиллов, но вы — человек со стороны. Вас лично никто не знает, а кот в мешке никому не нужен. Личный разговор помогает рассеять туман — и понять, как вы сработаетесь с остальными, разделяете ли её ценности и подход к работе.
Иногда интервьюеры пытаются понять, с какой командой вы сработаетесь лучше. Возможно, им нужен проактивный специалист, неформальный лидер. А может, наоборот — человек, который будет учиться, перенимать опыт у более знающих и брать на себя менее значимые задачи.
Когда вы проходите интервью на позицию, вам в целом важно понять company culture. Уточним: это то, что сама компания пишет про себя, а не комментарии о ней на Glassdoor. Вот, например, как описывает свои ценности Miro, Revolut, Figma.
Вот примерный план действий:
Изучите company culture.
Смоделируйте вопросы и ответы на них, исходя из company culture.
Подготовьте примеры. Много примеров.
Обкатайте свои ответы с кем-то.
Be nice
Помните: вас оценивают в течение всего процесса. Не говорите плохо о бывших коллегах и компаниях. А если вы участвовали в грандиозном проекте, не перетягивайте одеяло на себя — отдайте должное другим участникам.
Чуть подробнее о примерах. Часто спрашивают вопросы из серии STAR. «Вспомните ситуацию, когда вам было проблематично сдать проект вовремя. Как вы решали проблему и к чему это привело?» По ответу можно понять, как человек относится к той или иной ситуации, к своим коллегам, способен ли проявить инициативу. Поэтому важно подготовить примеры. Если же вы всегда успевали в срок (мы таких разработчиков не встречали, но это не значит, что они не существуют), продумайте гипотетически ситуацию и пути её решения.
Последний совет: идите туда, где вам будет хорошо. Если вы чувствуете себя некомфортно уже на этапе интервью, лучше поискать другие варианты. Всё-таки не только компания вас оценивает, но и вы её.
Скользкие вопросы
Если тебе нужны только деньги, стоит ли об этом говорить?
Могут очень негативно отнестись. Всем хочется, чтобы человек оставался в компании — вокруг него растёт команда, в него вкладывают ресурсы и внимание. И всё это может пойти коту под хвост, если придут другие ребята и предложат больше денег.
Но сам вопрос компенсации важен. Проговаривайте честно и открыто, какой оклад вы считаете справедливым. Если у вас на руках есть оффер выгоднее, расскажите это. Но важно оставаться позитивным — отметить, что вам нравятся их технологии, их company culture.
В России торговаться при обсуждении оффера — стандартная практика. Но сколько можно выторговать в Европе?
В Европе часто пытаются надавить на кандидата, предложить на 10-15% меньше ожидаемого. Но с помощью нехитрых манипуляций с рекрутёром можно добиться компромисса.
Главное — не просите больше названной вами вилки. Если вы обговаривали с рекрутёром максимальную пороговую сумму, а в конце называете сумму повыше, это не лучшим образом скажется на вашей позиции. Поэтому на первом интервью говорите сумму, за которую вам не будет обидно.
Назвать вилку рекрутёру — значит, поставить себя в более уязвимое положение. Стоит ли раскрывать такие детали?
Часто у вас информации больше, чем у HR. Поэтому в первую очередь стоит ориентироваться на сумму, которую, как вам кажется, вы заслуживаете, и за которую вы сможете работать года три без затаённой грусти. Вы же ищете постоянную работу, вам не нужен job hopping. Откажут — и ладно, сможете их отсеять.
Сколько времени занимает процесс интервью, от первого контакта с HR до оффера?
От месяца до трёх. Нужно понимать, что параллельно с вами оценивают других кандидатов. В стартапах обычно всё двигается быстрее. Мы, например, сотрудничаем с одними ребятами через CTO, и можем сократить процесс до пары недель.
Это и многое другое было на вебинаре Geekfactor. Авторы статьи — Митя Гладышев (эксперт по system design interview), Георгий Могелашвили (знаток coding interview) и Алексей Акимов. На сайте наших партнёров GetMentor можно записаться к ним на консультации.
А если вы пока только интересуетесь релокейтом, заходите к нам на сайт и добавляйтесь в сообщество — мы ведём свою базу вакансий и постучимся к вам, когда найдётся подходящая работа.
Читайте также:
ruomserg
Я бы добавил, что программистам (по возможности!) следует изучать то, чему учат менеджеров. Очень помогает понять — что в голове у людей, которые тебя принимают (или не принимают) на работу.
Так, например, идеология culture fit (или behavioral) интервью построена на идее, что (цитирую по менеджерскому учебнику): "… наилучшим прогнозом того, как человек воспримет информацию и будет действовать в определенной ситуации — является его прошлое поведение в аналогичной ситуации". Ну то-есть, если мы нанимаем капитана круизного лайнера, и хотим узнать — как он будет действовать если захочет показать пароход своей любовнице и пропорет днище о подводную скалу — лучше всего спросить его, как он это сделал в предыдущий раз. :-)
Но кроме шуток — в этом есть определенный смысл, потому что если у человека есть определенные привычки и склонности — они скорее всего перекочуют с ним и на новое рабочее место. Поэтому на интервью всегда следует мысленно перефразировать вопрос из формы «расскажите как вы в прошлом реагировали на негативную обратную связь» в форму «расскажите, как вы собираетесь реагировать на негативную обратную связь если будете работать в нашей компании». И приведите соответствующий пример из прошлого в формате STAR (Situation, Task, Action, Result).
Просто менеджеров же тоже чему-то учат. И если их научили проводить интервью по схеме STAR, то они от вас этого ждут. Вы им дадите ответ в этой технике — они будут довольны, и вы будете довольны. И так почти везде: хочешь уметь обыграть менеджера — сначала научись думать как менеджер! :-) Да и потом если станешь менеджером — уже не так страшно…