Про то, как я попал на интервью в Microsoft Ireland
Эта серия из трёх постов посвящена моей истории о прохождении интервью в Microsoft. Я постараюсь как рассказать свою личную историю с впечатлениями, так и проанализировать техническую сторону собеседований. В рассказе есть вся нужна информация для подготовки к интервью и совет — как легко получить реферрал и увеличить свои шансы на приглашение на интервью.
Ссылки на другие две части — в конце поста.
Вся история произошла для меня достаточно неожиданно и спонтанно. Всё началось в декабре 2017 года с комментария в Instagram.
Точнее, началось всё раньше — к концу 2017 года я уже был точно уверен, что собираюсь уходить из компании, в которой проработал полтора года. Основной причиной этому было осознание того, что я полностью освоился в проекте, оказался в своей зоне комфорта и перестал расти как разработчик: я зарефакторил всё, что хотел зарефакторить; инфраструктура была завершена, проект работал; количество ежедневных платежей перестало расти огромными темпами и более-менее установилось на каком-то удовлетворяющем всех уровне. И если с разногласиями в видении правильного процесса менеджмента и разработки с отдельно взятыми людьми можно было работать, то ужиться с жгучим желанием учиться и изучать новое не получалось. Да и засиделся я для “миллениáла” на одной работе.
Особого рвения уехать за границу, как ни удивительно, у меня никогда не было, поэтому смотрел вакансии только в Алматы и на удалённые проекты. Как выяснится позже, мне очень повезло, но именно в это время я увидел в Инстаграме пост бывшего преподавателя с моего университета, работающего сейчас в Microsoft Ireland, где я оставил незамысловатый комментарий вроде “хотел бы я однажды здесь работать”. После непродолжительного диалога выяснилось, что в его команде есть открытые позиции, и что я могу поделиться своим резюме и получить от него реферрал (рекомендацию). Подготовив резюме для этой вакансии, я отправил его на почту и получил первое письмо на почту “Добрый день. Вас порекомендовали, когда вам будет удобно поговорить по телефону?”.
Шаг 1. Phone screening interview
Самое первое собеседование, которое предстоит пройти — скрининг по телефону. Собеседование длится около 20 минут, проводит его сотрудник HR-департамента, цель — убедиться, что кандидат обладает достаточными навыками для этой позиции.
Назначили мне его на рабочее время, а попросить перенести я постеснялся, поэтому я попросил у коллеги ключи от его машины и пошёл проходить собеседование из холодного салона автомобиля.
Кстати, настоятельно рекомендую предложить использовать Skype, WhatsApp или любые другие сервисы через Интернет, потому что качество международной связи ужасное.
Процесс
На phone screening interview задаются базовые вопросы:
- Расскажите о себе — имя, чем занимаетесь, хобби. Этот вопрос задаётся, по большей части, чтобы вы адаптировались к английской речи, но можно воспользоваться моментом и завоевать интерес интервьюера коротким ответом про интерес к необычным хобби или экстремальным видам спорта
- Опыт работы и текущая работа, проект (сфера, масштаб, стэк технологий, языки программирования), ваша роль в нём и ваши предпочтения (front-end / back-end)
- Почему ищете работу и почему хотите работать именно у нас \ на этой позиции. В ответе на этот вопрос, как и на все другие, не нужно никакого негатива. Стандартный ответ — карьерный и профессиональный рост, любовь к компании, её продуктам и идеологии
После интервью можно задать свои вопросы по поводу работы. Даже если вопросов у вас нет — всё равно подготовьте что-нибудь, это необходимо из вежливости. Также, отсутствие вопросов может рассматриваться как отсутствие интереса к позиции или компании.
Можно спросить что-нибудь вроде:
- Какую часть команды составляют опытные Senior-разработчики? Это показывает ваш интерес к обучению и перенятию опыта
- Какое соотношение maintenance / development (сопровождение / разработка)? Этот вопрос немного отпугивающий, но может избавить от траты времени, если позиция предусматривает меньше чистой разработки, чем вам бы хотелось
- Как организован процесс постановки задач?
- Вы используете Agile, Scrum?
На этом этапе у меня произошёл неловкий разговор и после него я был уверен, что этот звонок станет для меня последним:
Интервьюер: Вы знаете, что такое Office 365?
Я: Да, это вроде Google G Suite, но от Microsoft
Интервьюер, после неловкой паузы: да, что-то вроде этого…
Шаг 2. Skype interview
В конце разговора интервьюер сразу сообщила результат и назначила техническое интервью. Если вы что-то упустили, то не переживайте — всю информацию дублируют на электронную почту в текстовом виде с полной инструкцией: где, когда и с кем интервью, что делать и как подготовиться.
Процесс
Интервью длится 1 час и проводится опытным Senior-разработчиком из нанимающей команды и начинается со знакомства, ознакомления и обсуждения резюме и опыта работы. Основная часть интервью — написание кода с демонстрацией экрана проходит на специальном веб-ресурсе.
Вы можете выбрать любой язык программирования, я выбрал C#.
Считается, что интервью в крупных корпорациях language-agnostic, то есть на ваш выбор языка программирования смотреть не будут. На практике по возможности стоит выбрать язык программирования, который используют в команде и который знает интервьюер. Так он сможет полноценно оценить по достоинству ваши знания, а не тратить все силы, пытяась понять синтаксис какого-нибудь незнакомого Go или Python “на лету”.
В течение почти всего часа удалённый программист будет задавать технические вопросы, связанные с написанием кода. Уровень вопросов, естественно, зависит от уровня, на который вас собеседуют.
Я сначала отвечал на вопросы вроде “Какие потенциальные проблемы содержит этот код?”, “Что делает эта конструкция?”, “Что делает этот блок кода в целом?”, “В чем разница между абстрактным классом и интерфейсом?”.
После того как уровень знания языка стал ясен даются разнообразные задачки. Задачи выбирает или даже придумывает сам интервьюер, по своему усмотрению, особых инструкций у них нет.
Пример задачи
Рассказать про задачи, которые задавали мне, я, по понятным причинам, не могу, но самая популярная и базовая задачка:
Дан массив чисел еще одно число K.
Нужно найти два числа в массиве, которые в сумме дают K.Например, для чисел [1, 5, 7, 3, 8, 11, 4, 6] и K = 11 ответ будет [3, 8], так как 3 + 8 = 11
Если вы можете решить эту задачу двумя циклами, то хорошо. Если вы можете решить эту задачу за O(n)
с использованием множества (Set), то еще лучше.
Анализируйте задачу, продумывайте все пограничные случаи.
Задавайте себе, а затем и вслух разумные вопросы:
- Целочисленные ли элементы массива?
- Какой максимальный размер массива и максимальное значение чисел?
- Что, если в массиве несколько таких пар?
- Что, если в массиве нет таких пар?
Я вопросы не задавал, видимо волновался, и сразу приступал к решению, но, к счастью, много рассуждал вроде “необходимо выбрать корректный тип данных в зависимости от чисел в массиве и K, чтобы не произошло переполнение типа”.
Не думайте, что от вас требуют идеального решения всех задач. Самое главное на этом интервью — проявить умение выявлять требования и мыслить. В конце концов, предпочтительней будет кандидат, который очень грамотно рассуждал, но переволновался и чуть-чуть не хватило времени, чем кандидат, молча взявшийся за задачу и решивший её без комментариев.
На интервью постоянно говорите, не останавливайтесь и не уходите надолго в себя, произносите все свои догадки и мысли вслух. Если вы знаете неэффективное решение, но не можете вспомнить эффективное, то озвучьте это и, возможно, вас попросят для начала реализовать неэффективное. Если вы не помните как называется класс или метод, то так и скажите “Там есть класс, который делает вот это, он мне нужен для вот этого. Я не помню как он называется, но я легко нашёл бы это в поисковике”. Интервьюер подскажет вам, так как его задача — помочь вам пройти собеседование, а не завалить вас.
После решения задач интервьюер благодарит вас и может ответить на ваши вопросы. Это ваш шанс узнать больше о команде и людях, можете спросить что-нибудь вроде “как часто бывают переработки?”, “как жизнь в этой стране?”, или что-нибудь техническое.
Большинство кандидатов отсеиваются именно на этом собеседовании, поэтому к нему стоит подготовиться очень хорошо, а не как я.
Я прошёл собеседование, по личным ощущениям, хорошо, так как имел солидный опыт олимпиадного программирования и знал типичные задачи на алгоритмы и структуры данных.
Как подготовиться?
В третьей части рассказа есть полный список тем, литературы и интернет-ресурсов, по которым можно подготовиться к техническим интервью.
Шаг 3. On-site interviews
Через неделю после собеседования по Skype я получил обратную связь и меня пригласили на on-site interviews, то есть собеседования вживую.
После выбора удобной даты Microsoft предоставляет официальное письмо для посольства с деталями о предстоящем собеседовании, которое затем используется для получения визы на интервью. Визу кандидат делает сам и за свои деньги, но эти расходы возмещаются в случае успешного найма. Зато работодатель полностью оплачивает перелёт и проживание в отеле.
Получив визу, я связался с рекрутерами, выбрал авиабилеты и в этот же день получил выписанные билеты и оплаченную бронь отеля на почту. На работе я сказал, что хочу в отпуск и улетел.
Только на паспортном контроле в аэропорту Дублина я понял, что очень плохо понимаю ирландский акцент, поэтому до самого интервью переживал по этому поводу. Еще перед вылетом забыл спросить у HR, встречает ли меня кто-то в аэропорту, поэтому полчаса ходил по аэропорту Дублина и заглядывал на бумажки встречающих, после чего сел на Aircoach и самостоятельно доехал до отеля.
Дублин встретил меня тёплой влажной погодой. Собеседования были только на второй день, поэтому в первый день я изучал город и любовался цветущими изгородями в феврале:
Процесс
Раунд on-site собеседований начинается в 9 утра и длится около 5 часов с учётом перерывов на кофе. За это время проводится 4 интервью один-на-один с 4 разными интервьюерами, по 1 часу каждое. Обычно собеседует один Engineering Manager (начальник отдела разработки по-нашему) и 3 опытных программиста, но у нас почему-то было 4 менеджера.
Помимо меня на собеседовании было еще 3 кандидата, один из Турции и двое из России. Все кандидаты и интервьюеры поочерёдно меняются. Другие кандидаты оказались очень интересными ребятами, из разных сфер и с разным опытом, за чаем удалось немного поговорить на английском языке и морально подготовиться. Кстати, только один из четырёх в итоге не получил предложение по работе.
В целом, процесс не сильно отличается от Skype interview. Первые 10 минут интервьюер просто общается с кандидатом и задаёт общие вопросы, затем достаточно простые технические вопросы, чтобы снять напряжение и настроить на продуктивный разговор.
Последующие 30–40 минут кандидат решает различные задачи. Уровень задач чуть повыше, чем на Skype interview, к тому же разные интервьюеры делают упор на различные сферы знаний.
Последние 5–10 минут уходят на общение и ответы на вопросы, затем 5 минут на отдых в одиночестве и следующее интервью.
Интервью проходят в специальных переговорных комнатах. Ноутбуков и прочей электроники нет, весь код пишется маркером на доске. Код нужно писать также как вы бы его писали на компьютере. Например, в начале первого интервью я сказал, что назову переменную x
, чтобы не тратить время на многократное написание названия, но в реальной жизни назвал бы её evenNumbersCount
. В ответ интервьюер попросил меня использовать полное название.
Ваша задача на этом интервью — показать своё умение анализировать задачи, рассуждать, писать код, но не менее важно — понравиться интервьюеру. Этот этап интервью проводят ваши потенциальные коллеги и менеджеры, и они в первую очередь ищут себе тиммейта, товарища, коллегу. Если вы создадите впечатление неприятного, высокомерного или просто неинтересного человека, то ваше решение задач уже не будет иметь особого значения.
Самый главный совет по поводу написания кода на маркерной доске — оставляйте расстояние между строками, особенно когда кажется, что понадобится что-то дописать туда. Всегда можно продолжить писать код на соседней доске, если закончится место; но если вам понадобится вставить линию кода в начале метода, а код не будет влезать, то вас попросят стереть всё и написать заново.
Все технические детали и разбор типовых задач я описал отдельно во втором посте, потому что это будет интересно только людям, близким к IT и разработке.
После интервью
После интервью мы пошли на обед — нам вручили ваучеры в местную столовую, и мы пошли кушать вместе с одним из интервьюеров. Единственный из четырёх кандидатов, который в итоге не прошёл собеседование, на обеде не появился, так что менеджер рассказывал нам троим про офис, жизнь в Дублине, пенсионную систему, налоги, развлечения и прочие аспекты жизни в Ирландии. Этот совместный обед с менеджером меня очень обнадёжил и успокоил, ведь если бы интервьюер лично поставил отрицательный вердикт одному из нас, то вряд ли бы он начал рассказывать про то где мы можем открыть банковскую карту по приезду.
Оставшиеся два дня я гулял по Дублину, посмотрел город и посетил Temple Bar. Изначально я планировал провести в Дублине неделю за свой счёт, но визу мне дали тяжело и только на 2 дня из-за абсолютно дурацкой истории с туристическим агентством, которую я расскажу в следующий раз.
Через неделю после интервью я получил положительный ответ и оффер на электронную почту. Я сообщил эту новость своему начальнику, но с удовольствием проработал на проекте еще полгода, пока занимался получением визы и переездом.
Про получение визу и переезд — в следующих постах!
Вывод
Прохождение интервью — это невероятно захватывающий, интересный и полезный процесс. Я немного жалею о том, что я раньше не проходил собеседования во все возможные компании.
Всем сомневающимся и интересующимся — пробуйте, учитесь и еще раз пробуйте. Ведь даже если вы не пройдёте, то вы получите новый опыт и новые знакомства, а в худшем случае — посетите новую страну с бесплатным перелётом и проживанием.
Разработчики из стран СНГ очень ценятся на западе и действительно хорошо себя показывают, так что если вы опытный программист, то достаточно подтянуть английский и решение задач, чтобы успешно проходить интервью в любую компанию.
Следующие две части будут, скорее всего, интересны только людям, знакомым с языками и технологиями программирования:
- Часть 2. Про техническую часть on-site интервью в Microsoft, с разбором задач
- Часть 3. Про подготовку к интервью в Microsoft
Еще есть отдельная статья с сравнением процесса интервью в СНГ и Европе:
Ссылки
- Добро пожаловать
Оглавление по всем статьям в этом блоге