История Дениса: Продолжение

Начало тут.

Есть ли жизнь после Google?

Следующие несколько недель я пребывал попеременно в состоянии то обиды, то разочарования, то опустошения. Было слишком много надежд и планов, уйма затраченных сил, и всё коту под хвост. Ну, или так мне тогда казалось. Хотя сейчас я понимаю, что на самом деле силы и время, потраченные на подготовку, были совсем не напрасны. Я стал гораздо лучше как специалист.

А потом где-то через месяц меня пригласили на собеседование в United Nations. У них неплохо платят, и я решил сходить ради интереса. На мой взгляд собеседование я прошёл просто отлично. Оффер поступил через несколько дней, и зарплата ощутимо выше моей. Правда были и определённые минусы. По такому поводу, я решил поговорить с начальником, и, получив в результате прибавку, решил остаться. Все эти события немного повысили мой боевой дух.

Ещё через месяц я получил сообщение на Linkedin с приглашением на собеседование от Амазона. Они устраивали recruiting event в Вене. Вначале я даже не хотел соглашаться. Потом решил, что схожу, посмотрю как далеко удастся пройти, но сразу никаких планов и надежд не строил. Даже особо и не готовился. За неделю до просто освежил в памяти основные вещи и все.

Собеседования в Amazon

Чтобы получить приглашение на личное собеседование требовалось сначала пройти онлайн тест. Рекрутер сказал, что будет 2 задания на 120 минут и нельзя прерываться.

На деле оказалось, что задание было одно, на 50 минут. Я был приятно удивлён тем, что проходил этот онлайн тест именно на hackerrank.com. Было не сложно – сериализовать бинарное дерево в определённом формате. Задачек с деревьями я нарешал уже уйму. Большую часть руки написали сами.

Следующие пара недель ушли на неспешную переписку с рекрутерами и определения времени личного собеседования. К 8-ми утра я был в оттеле Le Meridien в центре Вены. Нервничал уже гораздо меньше, чем на собеседованиях Google. Я не настраивался получить работу, решил сходить, поговорить с умными людьми, попробовать порешать интересные задачки и получить от этого удовольствие. Всё.

Первый час рекрутеры рассказывали, что нас (меня и ещё 5-х кандидатов) будет ждать в течении слежующих 4-х часов. Говорили, что нужно обязательно проговаривать свои мысли вслух, чтобы собеседущий знал о чем вы думаете и смог помочь. Рассказывали про компанию, про позиции, про оформление виз в США и Канаду.

Потом каждого из нас отвели в отдельный номер в оттеле. В номере были кофе, чай, вода, содовая и т.д. Доска, маркеры, блакноты, ручки – всё на месте. Я специально маркеры покупал, как советуют во многих статьях, но Амазон подготовился хорошо.

В начале каждого часа приходит собеседующий. Первые 5 минут – обычная беседа чтобы рсстопить лёд, потом минут 40-45 вы решаете техническую задачу. Ещё 5-10 минут оставлены на вопросы собеседующуму и за 5 минут до конца часа он/она уходит, давая тебе время отдохнуть перед следующим часом.

В первый час мы обсуждали как создать веб сервис для приёма списка товаров, отправляемых на склад. Задание сначала было поставлено в очень общей форме, а потом уточнялось. Появлялись новые условия и ограничения. Вопросы типа “а что если таймаут или обрыв связи после записи в базу?” или “а что если 2 запроса одновременно?” и т.д. Такими вещами я занимаюсь на работе каждый день. Да, не с такими объёмами и т.д., но тема более чем знакомая, так что мы очень хорошо побеседовали и разошлись довольные друг другом. В конце собеседующий рассказал мне небольшую историю, произошедщую в Амазоне и послужившую основой для этого вопроса.

“С одним повезло, но впереди ещё 3.” – подумал я. Второй собеседующий предложил сыграть в Boggle – поиск слов на квадратном поле. Функция, для определения слово или нет, дана, а значит нужно только написать обход всех вариантов. По какой-то никому не известной причине, я решил, что надо использовать BFS. Накатал уже страницу кода как понял, что BFS не подходит и надо использовать DFS. Собеседующий внимательно смотрит, молчит и ждёт… Беру новый листок и со словами “нее, BFS не подходит, нужен DFS” начинаю покрывать его кодом.

Потом были вопросы типа “а что если поле большое?”, “как можно оптимизировать?” и т.д. Я его в конце спросил: “а что ты меня не остановил когда я начал через BFS делать?” А он: “Было интересно посмотреть, а вдруг ты чего придумаешь.” Второй час прошёл тоже вроде хорошо.

Третий час был наверное самый сложный. Я уже начал уставать и задание было непростое. В двух словах его не расскажешь, так что упущу эту деталь. Собеседующая по началу была настроена настороженно, а я не знал как решать. Начал вслух рассуждать. Если делать “в лоб”, то такие то вещи будут медленными, и что надо кэшировать результаты. Она немного подтолкнула к правильному ответу и тут картинка в голове сложилась. Я рассказал как надо делать. По пути было пару упущений, но она мне намекала на мои ошибки, спрашивая: “а что если…”. Ещё полтора листа кода и этот час тоже закончился на положительной ноте.

Последний час был, наверное, самым лёгким. Спрашивали про наследование и полиморфизм на примере создания нескольких классов.

Надо сказать, что абсолютно все собеседующие были дружелюбными, приветливыми, пытались помочь и направить на правильный путь. Впечатления исключительно положительные. Я пообщался с умными людьми и порешал интересные задачки.

После интервью

В 13 часов, выжатый как лимон, я пошёл на работу. Наша команда в тот момент была в разгаре написания нового проекта с кучей открытых вопросов. Не успел я войти в офис, как со всех сторон налетели с вопросами, совещаниями, code review по проекту. Только я более менее разобрался, голова уже гудит, проверяю почту, а там письмо от рекрутеров Амазона. Просят прийти ещё на пол часа вечером, так как они подозревают, что я могу претендовать на позицию SDE 3, но нужно провести ещё собеседование. Серьёзно? Нет, я конечно очень обрадован, но сил уже почти нет.

Вечером Амазон был не так подготовлен. Отвели меня в мини конферец зал в каком-то подвале – это была единственная команата, которую отель смог предоставить. Доска была, а маркеров нет! Все начали кипешить, где теперь взять маркеры, а я такой говорю: “Без проблем, у меня есть с собой!”. И рекрутер, и собеседующий были приятно удивлены.

Дальше мы минут 40 обсуждали реальную задачу, которую каманда собеседующего решала пол года назад – интеграция Амазон и сервиса по рекомендации книг. Вопросы на тему архитектуры и дизайна систем. Я начал опять с решения “в лоб”, а дальше улучшал и подгонял под требования, на каждом этапе озвучивая какие бывают проблемы и как их избежать. Потом ещё минут 20-30 разговаривали “за жизнь” – про компанию, проекты, команды, работу, условия и т.д.

Через час с лишним после начала получасового собеседования заглянул обеспокоенный рекрутер со словами “У вас всё хорошо? А то уже почти 7 вечера”. Пришлось закругляться. Очень скоро я полул оффер на позицию SDE 3 в Амазон.