Про то, как я попал на интервью в Microsoft
Всем добрый день. Я пишу серию постов про свой опыт получения работы в Microsoft и переезда в Ирландию. В предыдущих постах многие люди интересовались тем, как проходит интервью и какие вопросы \ задачи задают. Я постараюсь как рассказать свою личную историю с впечатлениями, так и проанализировать техническую сторону собеседований.
У этого поста есть продолжение, которое состоит из двух частей. Позвольте просто поделиться ссылками на них, потому что они совсем не вписываются в формат Пикабу и сообщества пикабушников за границей, будут интересны единицам и содержат только код и ссылки:
- Часть 2. Технический разбор и решение задач с on-site interview
- Часть 3. Требования к кандидатам и как подготовиться к интервью: темы, алгоритмы и материалы по подготовке, а также уровень английского, подготовка резюме
Блог не коммерческий, делюсь в целях помощи желающим найти работу своей мечты.
Вступление
Вся история произошла для меня достаточно неожиданно и спонтанно. Всё началось в декабре 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
Интервьюер, после неловкой паузы: да, что-то вроде этого…
Не повторяйте таких ошибок. Перед phone interview стоит досконально ознакомиться с вакансией, проектом, компанией, её продуктами и культурой.
Шаг 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 предоставляет официальное письмо для посольства с деталями о предстоящем собеседовании, которое затем используется для получения визы на интервью. Визу кандидат делает сам и за свои деньги, но эти расходы возмещаются в случае успешного найма. Зато работодатель полностью оплачивает перелёт и проживание в отеле.
Получив визу, я связался с рекрутерами, выбрал авиабилеты и в этот же день получил выписанные билеты и оплаченную бронь отеля на почту. На работе я сказал, что хочу в отпуск и улетел.
Дублин встретил меня тёплой влажной погодой. Собеседования были только на второй день, поэтому в первый день я изучал город и любовался цветущими изгородями в феврале:
Процесс
Раунд on-site собеседований начинается в 9 утра и длится около 5 часов с учётом перерывов на кофе. За это время проводится 4 интервью один-на-один с 4 разными интервьюерами, по 1 часу каждое. Обычно собеседует один Engineering Manager (начальник отдела разработки по-нашему) и 3 опытных программиста, но у нас почему-то было 4 менеджера.
Помимо меня на собеседовании было еще 3 кандидата, один из Турции и двое из России. Все кандидаты и интервьюеры поочерёдно меняются. Другие кандидаты оказались очень интересными ребятами, из разных сфер и с разным опытом, за чаем удалось немного поговорить на английском языке и морально подготовиться.
В целом, процесс не сильно отличается от Skype interview. Первые 10 минут интервьюер просто общается с кандидатом и задаёт общие вопросы, затем достаточно простые технические вопросы, чтобы снять напряжение и настроить на продуктивный разговор.
Последующие 30–40 минут кандидат решает различные задачи. Уровень задач чуть повыше, чем на Skype interview, к тому же разные интервьюеры делают упор на различные сферы знаний.
Последние 5–10 минут уходят на общение и ответы на вопросы, затем 5 минут на отдых в одиночестве и следующее интервью.
Интервью проходят в специальных переговорных комнатах. Ноутбуков и прочей электроники нет, весь код пишется маркером на доске. Код нужно писать также как вы бы его писали на компьютере. Например, в начале первого интервью я сказал, что назову переменную x, чтобы не тратить время на многократное написание названия, но в реальной жизни назвал бы её evenNumbersCount. В ответ интервьюер попросил меня использовать полное название.
Ваша задача на этом интервью — показать своё умение анализировать задачи, рассуждать, писать код, но не менее важно — понравиться интервьюеру. Этот этап интервью проводят ваши потенциальные коллеги и менеджеры, и они в первую очередь ищут себе тиммейта, товарища, коллегу. Если вы создадите впечатление неприятного, высокомерного или просто неинтересного человека, то ваше решение задач уже не будет иметь особого значения.
Самый главный совет по поводу написания кода на маркерной доске — оставляйте расстояние между строками, особенно когда кажется, что понадобится что-то дописать туда. Всегда можно продолжить писать код на соседней доске, если закончится место; но если вам понадобится вставить линию кода в середину метода, а код не будет влезать, то вас попросят стереть всё и написать заново.
Все технические детали и разбор нескольких типовых задач, а также материалы по подготовке доступны в продолжении, ссылки в начале поста.
Комната для собеседований, фото на перерыве
После интервью
После интервью мы пошли на обед — нам вручили ваучеры в местную столовую, и мы пошли кушать вместе с одним из интервьюеров. Мы обсуждали офис, жизнь в Дублине, пенсионную систему, налоги, развлечения и прочие аспекты жизни в Ирландии.
Оставшиеся два дня я гулял по Дублину, смотрел город и пил Guinness.
Через неделю после интервью я получил положительный ответ и оффер на электронную почту.
Я сообщил эту новость своему начальнику, но с удовольствием проработал на проекте еще полгода, пока занимался получением визы и переездом.
Про получение визы и переезд — в следующих постах!
Заключение
Прохождение интервью — это невероятно захватывающий, интересный и полезный процесс. Я немного жалею о том, что я раньше не проходил собеседования во все возможные компании.
Всем сомневающимся и интересующимся — пробуйте, учитесь и еще раз пробуйте. Ведь даже если вы не пройдёте, то вы получите новый опыт и новые знакомства, а в худшем случае — посетите новую страну с бесплатным перелётом и проживанием.
Разработчики из стран СНГ очень ценятся на западе и действительно хорошо себя показывают, так что если вы опытный программист, то достаточно подтянуть английский и решение задач, чтобы успешно проходить интервью в любую компанию.
Источник: https://medium.com/@ykurmangaliyev/86a3101b335a
Ссылки на продолжение - в начале поста


Жизнь пикабушников за границей
5.5K постов35.9K подписчиков
Правила сообщества
— Уважайте себя и членов сообщества — в глубоком смысле этого слова
— Поддерживайте мир во всем мире: мы искренне надеемся, что раз уж пикабушники живут по всему миру, здесь мы сможем избежать политики
— Чувствуйте себя как дома, даже когда вы вне дома :)
Запрещены: публикация политических постов, оскорбления пользователей, осуждение обстоятельств переезда авторов, развязывание конфликтов на почве политики, провокации в сторону авторов ("Что, сбежал с Родины? Испугался?", "Свалил и хорошо, туда тебе и дорога", "Да это всё пропаганда галимая" и так далее): за нарушение — предупреждение и сокрытие комментария, при непонимании — бан.
// на данный момент постить в сообщество могут пикабушники с рейтингом 25+. Иной премодерации нет и не ожидается.