Остория одного оффера: Олег
|Начало
Всем привет!
Меня зовут Олег. Я студент 3-го курса Киевского политехнического института. О стажировке в крупных компаниях, таких как Google, я узнал когда был на первом курсе. Я тогда проходил стажировку в компании Kodisoft (Киев). Там познакомился с бывшим интерном из Microsoft. После этого я еще побывал на ивенте о стажировке в Facebook, который проходил в Киеве и, в конце концов, решил, что мне это интересно.
В первый год я подался только на STEP (Summer Trainee Engineering Program) стажировку в Google. Через неделю, после того как Лариса меня прореферила, мне написал рекрутер и назначил два собеседования.
На первом собеседовании была задача на ДП (динамическое программирование), а на втором вопросы по архитектуре ЭВМ и о кэшировании. Ощущения после собеседований были смешанные, и я не знал чего ожидать. В результате получил отказ. Это было для меня скорее мотивацией, чем разочарованием, поэтому я сразу начал готовиться к подаче на следующий год.
Подготовка
Параллельно с собеседованиями в Google, я проходил собеседования на работу в Киеве, и до получения отказа уже работал на позиции Junior Java developer.
Я выделил пункты, которые считал важными, и на каждый составил план действий.
Английский язык
Сразу же, как я пошел на работу, я начал учить английский язык с репетитором по выходным. Позже перешел на вечерние курсы. Занимался я так где-то 7-8 месяцев. За это время мой английский несколько улучшился, как мне кажется. И, в любом случае, я чувствовал себя намного увереннее.
Программирование
На работе я попал на новый проект, где мне пришлось писать много кода. На первых пул реквестах была куча комментариев от опытных коллег. Большинство из них были типичными, и через некоторое время их количество значительно уменьшилось. В это время я читал много о Distributed Computing.
Полезные ссылки:
Алгоритмы
Из алгоритмов я решал задачи с предыдущих лет с наиболее популярных ресурсов. Ниже я постараюсь разбить известные мне ссылки на группы в соответствии с компаниями, в которых подобные задачи спрашивают.
Facebook:
Microsoft:
В Google, в отличие от Microsoft и Facebook, еще часто спрашивают задачи на ДП и графы (по крайней мере мне так показалось из собственного опыта и опыта знакомых). Поэтому перед собеседованием не будет лишним вспомнить классические задачи на эти темы. Для меня были полезными следующие ресурсы:
Структуры данных
Я нашел реализацию различных структур данных на Java. И работал следующим образом:
- Для каждой структуры данных гуглил теорию.
- Разбирал код из репозитория.
- Писал свою реализацию.
- Гуглил и решал задачи на эту структуру данных.
Резюме
С резюме мне очень помогла Лариса, которая опубликовала его в своем блоге. Таким образом, я периодически получал различные комментарии и вносил правки. Хочу сказать, что разница между начальным и финальным вариантом была колоссальной.
Interviewing skills
Перед реальными собеседованиями я проходил mock-собеседования на pramp. Это абсолютно бесплатный сайт. Задания там проще, чем на реальных собеседованиях, но он помогает выработать алгоритм их прохождения. Я прошел около 15 mock-собеседований.
Череда невезений
Microsoft
Первой компанией в этом году была Microsoft. Ко мне в Linkedin написал их рекрутер и предложил податься на летнюю стажировку. Я отправил резюме через сайт и через две недели было phone-screen собеседование.
Оно было очень простым, даже не пришлось писать код. Спросили несколько задач, к которым надо было устно рассказать решение. Я с нетерпением ждал следующих собеседований, но почти месяц не получал результатов, поэтому решил написать сам. На следующий день, после моего емейла, ответили, что я прошел на onsite и через неделю надо быть в Белграде. Казалось, что они меня потеряли… Так как я думал, что до onsite будет время, даже не начал делать загранпаспорт. В итоге договорились провести собеседования по Skype. Это был ужасный опыт. Я сидел целый день за компьютером и ко мне по очереди подходили интервьюеры. Связь несколько раз прерывалась. На последнем собеседовании сказалась усталость и я полностью его завалил, делая примитивные ошибки. Результат – отказ.
Bloomberg
Следующая компания в которую я подался – Bloomberg. У меня не было там реферала, но я слышал, что они часто отвечают через сайт. Так и произошло. Через полторы недели после отправки резюме, мне ответили и назначали собеседование. На собеседовании спросили одну задачу на алгоритмы и несколько вопросов на hash table, garbage collector, smart pointers в C++. Через три дня пришло приглашение на onsite в Лондон. Это вызвало приятное удивление, потому что должно было быть еще одно собеседование по Skype. Могу предполагать, что это из-за хорошо пройденного первого собеседования.
Когда я получил от них invitation letter, бронь отеля и самолета, то сразу начал делать бизнес визу. Но опять разочарование: за неделю до вылета, рекрутер написал, что они временно прекращают onsite собеседования, потому что в этом году очень много людей и они не справляются.
После предыдущих неудач уровень моего энтузиазма упал, но я старался себя мотивировать различными путями. Остались компании в которые я хотел больше всего – Google и Facebook. Я написал Ларисе емейл со списком вещей, которые сделал после отказа. И она второй раз меня прореферила, за что я очень благодарен 🙂
Через неделю написал рекрутер и попросил заполнить две анкеты и прислать unofficial transcripts. Также в другом емейле пришел online-тест из двух задач. Первая на строки, а вторая на деревья.
И опять мне назначили два собеседования в один день. На первом спросили задачу на графы. А на втором – на логику и реализацию. После долгих 3 недель ожидания рекрутер написал, что я прошел на host matching (этап поиска проекта). Он сказал, что еще не утверждено 51% проектов, поэтому host matching ориентировочно начнется со следующей недели. Также сказал, что идет на 9 дней в отпуск.
Только я начал думать, как улучшить свою анкету, прошло ровно 9 дней и рекрутер написал, что хост из New York хочет провести собеседование. Но мне надо было поспешить потому, что хост рассматривает еще нескольких кандидатов. Собеседование было уже через день.
Host matching собеседование было как дружеская беседа. Хост рассказал о используемых на проекте технологиях, спросил с чем из этого я работал, и в целом мы поговорили о плюсах и минусах различных решений. После собеседования я написал рекрутеру, что мне нравится команда, и я с нетерпением жду ее отзыва. В этот же день получил ответ, что отзыв команды также положительный, и она готова сделать оффер. Меня все устраивало, поэтому я сразу его принял.
Рекрутер с Facebook написал где-то через месяц после того, как меня прореферели. Попросил различные данные: последнюю версию резюме, свободные даты для проведения собеседования, дату окончания университета… Первое собеседование было довольно простым, и я прошел его хорошо. Через два дня назначили следующее.
На втором собеседовании было много вопросов о моих проектах и одна задача с LeetСode. Я обрадовался, потому что решал ее много раз. Объяснил идею и сразу начал писать код. Во время этого сделал несколько машинальных ошибок. Например: говорю &&, а пишу || (не надо спешить). Собеседование явно не лучшее из тех что у меня было, но я не считал его провальным
После второго собеседования пришел оффер от Google. Я сразу написал рекрутеру с Facebook, что могу поехать только осенью и попросил рассмотреть меня именно на этот период. Через неделю мне отказали. Сейчас я считаю, что ошибкой было говорить об оффере от Google.
Заключение
Этот год был очень полезен. В частности опыт работы, несмотря на явные невезения, еще не раз пригодится. И конечно, приятно, что все закончилось хэппи эндом, и через несколько месяцев я еду на стажировку в Google New York
Надеюсь, что каждый, кто дочитал статью до конца, найдет в ней что-то полезное для себя. А я в свою очередь хочу еще раз поблагодарить Ларису за ее работу над этим блогом.