Устраиваемся в Amazon: 5 шагов от резюме до оффера
Как получить приглашение в западную компанию, слетать на интервью за счёт работодателя и решиться на переезд. Рассказывает разработчик Виктор Карпов.
Дима Руденок для Skillbox Media
Виктор Карпов
об эксперте
В Twitter @codingintervie2. Занимается веб-разработкой с 2011 года. Программирует в Amazon, до этого работал в «Яндексе». Ведёт канал в Telegram, где разбирает алгоритмические задачи для собеседований, а ещё стримит эти разборы на YouTube.
Когда меня впервые пригласили на собес в Европу, я съездил ради интереса, но ещё не собирался там оставаться. Постепенно вошёл во вкус, прошёл интервью в Facebook* и Amazon, получил оффер от Amazon и остался в Великобритании.
Расскажу по шагам, как попасть в крупную зарубежную компанию.
Шаг 1. Получите приглашение на собеседование
Есть два лайфхака, чтобы попасть на собеседование в компанию масштаба Amazon или Facebook*.
Через рефер
Рефер — это когда сотрудник компании предлагает рассмотреть вашу кандидатуру. Если просто отправить резюме, то можно не дождаться ответа. А с рекомендацией оно сразу поднимется на верх стопки у рекрутера.
Просить о рефере — нормальная практика. Тому, кто будет рекомендовать, это ничего не стоит, зато, если вас наймут, сотрудник получит премию. Для рефера у вас спросят, на какие три вакансии вы претендуете. Важно, чтобы по ним был релевантный опыт.
Чтобы получить рефер, надо найти сотрудника нужной компании. Я работал в «Яндексе», и у меня были выходы на людей, которые перешли оттуда в Amazon и Facebook*. Я не знал их лично, но написал в LinkedIn и напомнил, что когда-то мы вместе работали, попросил пореферить. Так меня и пригласили пройти тест.
Через рекрутера
Рекрутеры западных компаний обитают на LinkedIn, поэтому нужно, чтобы вас там заметили. Обычно ищут через аккаунты сотрудников крупных компаний. Советую не терять аккаунт и периодически проверять сообщения, несмотря на блокировку сервиса в России. Нигде, кроме LinkedIn, рекрутеры из западных IT-гигантов вас не найдут.
Шаг 2. Пройдите тест
Если резюме устроит рекрутеров, они с вами свяжутся. В Facebook* сразу переходят к живой беседе. В Amazon HR пригласит пройти тест на их собственной платформе, с которой можно познакомиться на демо. Некоторые компании проводят тесты на сторонних платформах, например на HackerRank.
Кроме теста нужно решить две задачи за два часа на выбранном языке. По сложности — примерно уровень medium на LeetCode, без динамического программирования. Ещё попросят объяснить, как вы решали задачи и оценить их сложность. Код можно запускать и тестировать.
А потом ждём результатов. Мне ответили прямо в день теста и сразу пригласили на интервью.
Шаг 3. Пройдите онлайн-интервью
Следующий этап — телефонное интервью. В назначенное время мы связались в Amazon.Chime — это амазоновский аналог Zoom. Код писал в одном из сервисов а-ля collabedit. Редактор кода шерился на оба экрана, и интервьюер видел, что я писал. Нужно было решить задачи в стиле LeetCode и ответить на вопросы по языку.
Испытание идёт 40 минут: если за 20 справляетесь с базовыми вопросами, то ещё 20 идёт на развитие задачи. У меня спрашивали про JavaScript. Например, создаёт ли метод slice новую строку? Если нет, то почему? Почему строки в JavaScript неизменяемые? В общем, нужно не только решать задачи, но и быть готовым уйти в сторону. В конце можно задать свои вопросы.
Если в онлайне всё пройдёт хорошо, вас пригласят на очное интервью.
Шаг 4. Пройдите онсайт-интервью
Мне ответили через семь дней и пригласили на онсайт в Эдинбурге. Сейчас из-за пандемии это просто день в Zoom с 4–5 секциями. К счастью, мой онсайт проходил не в локдаун, поэтому я съездил в Европу за счёт компании и прошёл собеседование офлайн.
На этом этапе можно взять несколько месяцев на подготовку. У меня уже было запланировано другое интервью в Лондоне, на январь, поэтому я попросил назначить онсайт в тех же числах, чтобы не летать в Великобританию и обратно дважды.
Вот как проходит онсайт.
Получите визу
С вами свяжется человек из Travel Team и пришлёт приглашение — по нему можно получить туристическую визу без подтверждения дохода и других документов. Я пришёл в визовый центр лишь с паспортом и пригласительным письмом. В письме компания гарантирует покрытие визового сбора и других расходов, в том числе на билеты и гостиницу.
Ещё одна приятная мелочь: компания компенсирует до 50 фунтов в день на еду и напитки. По возвращении сфотографируйте чеки, и вам вернут всё, что вы наели в аэропорту или в Starbucks.
Советую прилететь за сутки до интервью. Однажды у меня был онсайт, на который пришлось лететь с пересадкой. Планировал оказаться в городе накануне, но рейс задержали, поэтому прилетел в пять утра и сразу поехал в офис. Я не спал всю ночь, не успел принять душ и привести себя в порядок. В итоге встреча прошла неудачно — оффер я так и не получил. Зато в Англию прилетел заранее, и оба интервью прошли нормально.
Времени было с запасом: в понедельник я пособеседовался в Лондоне, а во вторник встретился с бывшей коллегой, которая там живёт. В среду приехал на вокзал Кингс-Кросс и отправился на поезде в Эдинбург.
Пройдите все секции
Чтобы пройти собеседования, нужно понимать систем-дизайн, решать алгоритмические задачи и писать на выбранном языке программирования без редактора кода. Если забыли какие-то функции — не страшно. Но нужно уметь рассказать, что планировали использовать и почему. А вот если забыли, как писать циклы, или не знаете, что у коллекции есть метод map, — это плохо.
В начале каждой секции 5–10 минут спрашивают про Leadership Principles. Например, какой самый сложный баг вы победили. Согласно принципу Ownership, разработчик должен думать не только о своём направлении, но и о проекте в целом. Так что сложный баг может быть, например, в том, что две системы в интеграции работали некорректно.
Интервью проводят два человека: один задаёт вопросы, а второй наблюдает — поначалу это может немного смутить. Всего пять секций с разными интервьюерами — каждая длится 45 минут — и обед.
Алгоритмы. На них выделили аж две секции. Первые 5–10 минут будут задавать вопросы по Leadership Principles. Потом — задачи из LeetCode уровня medium.
Решения нужно писать маркером на доске и сначала лучше обсудить с интервьюером.
Фронтенд. В Facebook* задачи по фронтенду сводятся к алгоритмам: например, обход дерева в глубину или использование стека. В Amazon попросили написать на JavaScript компонент, который должен был встраиваться в другие сайты. Потом поговорили про недостающие пространства имён в CSS, версионирование библиотек, кэширование в браузере и так далее.
Систем-дизайн. Отдельная секция по систем-дизайну — это когда в свободной форме нужно спроектировать систему в деталях. Так в компании поймут, что вы действительно запускали большие системы в продакшен, сталкивались с проблемами масштабирования, собирали метрики и знаете, как работает код на реальных машинах.
Надо понимать, что сеть надёжна не на 100%, в каналах могут быть задержки, а зависимости иногда подводят. Грубо говоря, в этой секции вы демонстрируете боевой опыт и прагматичность.
По систем-дизайну обычно задают открытые вопросы. Например, представьте, что запускаете стартап, в котором вы — CTO. Что будете делать? Как он будет работать через пять лет, когда клиентов станет в 100 раз больше? А в «чёрную пятницу», когда нагрузка возрастает в 100 раз? Правильных ответов нет, и говорить можно часами — всё зависит от ваших знаний и экспертности.
Покажите, что знаете требования к высоконагруженным системам и API, понимаете, какие таблицы понадобятся в БД и где в системе узкие места. Например, если мы проектируем сервис для букинга отелей, то летом нагрузка на оборудование будет больше, чем зимой.
Расскажите, с какими реальными проблемами и паттернами сталкивались, предложите высокоуровневое решение и углубитесь в отрасль. Например, если вы фронтендер, расскажите, как реализуете бесконечный скролл, чтобы не повесить телефон пользователя через 20 минут скроллинга. Или как соберёте клиентский код, чтобы не грузить 10 мегабайт JavaScript на телефон по 3G.
Обед + small talk. После четырёх секций — час на обед. На нём можно пообщаться с другими разработчиками и поспрашивать о команде в неформальной обстановке.
Behavior. Заключительная секция — поведенческое интервью: разговор с нанимающим менеджером о soft skills и прошлом опыте. Будьте готовы рассказать о предыдущих проектах, погрузиться в технические детали и, как говорится, «дать мяса». Советую готовиться по методу STAR: описываете ситуацию, цели, которые поставили, ваши действия и результаты.
Тут важно не то, что вы сделали, а то, как вы умеете оценивать результат. Например, вы придумали архитектуру, а команда не хочет её принимать. Угадывать правильное решение бесполезно: вспомните и проанализируйте, что делали в той ситуации и какие ошибки допустили. Рекомендую прекрасный шаблон для подготовки к бехейв-секции в Amazon и любой другой компании. На каждый принцип есть пример с ответом по методу STAR.
Шаг 5. Дождитесь оффера или фидбэка
Целый день собеседований — это сложно психологически и физически. После него можно денёк прогуляться по городу и лететь домой ждать оффера и обратной связи.
Некоторые компании после собеса не рассказывают, в чём вы были хороши, а где нужно прокачаться. Но иногда интервьюер зачитывал мне фидбэк с предыдущих секций. Так я смог выявить своё слабое место — оказывается, это коммуникация.
Когда получите оффер, зарплату можно поднять примерно на двадцать процентов. А если есть контроффер с бонусами, то можно ещё выбить хорошие бонусы.
Бонус: как готовиться к собеседованию
На собесе многое зависит от удачи, но если решать много задач и постоянно пробовать, то шансы вырастут.
Где брать задачи
Открывайте LeetCode, заводите таблицу и записывайте в неё, сколько задач решаете каждый день и за какое время. Так вы увидите, сколько часов в неделю выделить на тренировки, чтобы разобраться в теме.
Когда справитесь с 10–20 задачами, не подсматривая, сможете решать весь класс задач. Конечно, за неделю так подготовиться к собеседованию не получится, но за 3–4 месяца — вполне.
Как решать задачи
Я выработал такой метод. Завожу таймер на 25 минут по методу Tomato и решаю задачу. Если справился за 25 минут — берусь за следующую, если не смог — смотрю подсказку, отдыхаю 10 минут и решаю ещё 25 минут. Если тема стала слишком простой, перехожу на более сложную. Если и ещё за 25 минут не справился, то ищу решение, а затем беру аналогичную задачу.
Отдельно о задачах по систем-дизайну. Не гуглите чужие решения, потому что на такие вопросы нет правильного ответа. Лучше подумайте и напишите ответы, отталкиваясь от своего опыта и знаний. Иначе, впервые увидев задачу, да ещё и на английском, испугаетесь и запутаетесь. Когда идёте на собес, в голове уже должно быть решение.
То же самое на behavior-интервью: если придумывать ответы, то, скорее всего, запутаетесь. Ещё важно знать Leadership Principles и подготовить пару-тройку историй с работы, которые их демонстрируют.
А стоит ли идти работать в западную компанию
Если ваша цель — больше зарабатывать, то переезд в Европу не поможет. В России жить гораздо выгоднее, потому что налоги и цены здесь ниже. А чтобы ощутимо больше зарабатывать в Европе, нужно быть уникальным специалистом или топ-менеджером. Лучше устроиться удалённо в западную компанию, открыть ИП и получать те же 10 тысяч долларов в месяц.
Я не вижу большой разницы между «Яндексом» и Amazon. Да, Amazon больше, и коммуникация в нём немного сложнее, ещё и коронавирус прибавил неудобств. Но подходы к работе одинаковые, и к людям относятся хорошо в обеих компаниях. Есть обратная связь, можно говорить, что нравится, а что нет, и изменить это. Компании не хотят, чтобы специалисты уходили, потому что тратят много денег на их поиск.
Я целился в крупные компании, потому что они выделяют на переезд довольно крупную сумму. А это особенно важно, если переезжаете с семьёй и детьми. Возможно, когда-нибудь захочу работать в маленькой компании, но не сейчас. Некоторым, например, категорически не нравятся корпорации — просто потому что такие специалисты не терпят внутренних инструментов и фреймворков. Я знаю людей, которые уволились из «Яндекса» по этой причине.
В маленьких компаниях более «ламповый» стиль общения, сотрудники здороваются за руку с CEO. Там нет сложных политик и связей, но особо некуда идти по карьерной лестнице. А в компаниях масштаба «Яндекса» много разных команд, целей и планов. Чем больше работаешь, тем больше понимаешь, как эта паутина устроена.