Как я переехал жить и работать в Лондон

d68df0d0beb923ef40c486e9ad622db6.jpg

История началась в конце 2019 года… На тот момент я уже работал ведущим разработчиком в хайлоад стартапе в Москве в технически сильной команде, которая прошла школу топовых интернет компаний России. Такого буста я не получал давно, хотя всегда был разносторонним и находил, чем занять себя помимо рутинной работы в офисе над одним и тем же проектом. Были у меня и свои активно развивающиеся идеи, и аутсорсинг — все параллельно. Но пришло время менять место. Так я и попал (далее со слов CEO) в динамично развивающуюся компанию, готовую покорить не только локальный, но и зарубежный рынки. Спустя год мне была предложена возможность переехать в Англию, а именно самому получить Tier-1 Exceptional Talent визу и помочь компании закрепиться в Европе. Ну такая себе возможность, подумал я… Слишком сложная, целиком и полностью от меня зависящая. Да и не понятно кто на кого больше пашет в данной истории. Я выделил полгода своего времени на поиск и наработку пруфов, подготовку пакета документов, подачу заявления и разовую апелляцию. При этом пожертвовал хорошими офферами в компании — конкуренты и, положа руку на сердце, не самым удачным оффером в Яндекс. И хотя передо мной таким образом все же успело переехать несколько человек, закончилось все вполне себе ожидаемо.

После неудачи я решил выбрать более простой и понятный путь — через получение обычной рабочей визы. Регулярно разгребая письма и звонки от рекрутеров, в том числе от Luxoft и EPAM, я понимал, что это наверно самый простой способ завести трактор в Европу и США, но он же выглядел самым долгим и плохо оплачиваемым. Оставалось одно — собеседоваться напрямую в топовые компании. Для этого нужен был LinkedIn, который на тот момент у меня уже был заполнен не самым худшим образом, английский язык, и, конечно же, подготовка к самим собеседованиям.

Я начал с английского языка. Был по знакомству найден хороший преподаватель в Skyeng, которому была интересна релокация и процессы связанные с ней. Классика… Жена — преподаватель английского. Муж — программист, работающий удаленно на небольшую компанию в Долине и имеющий опыт собеседований в FAANG. Это оказался прекрасный вариант — такого замотивированного преподавателя я ранее не встречал! За полгода я закрепил свой B1, а затем подтянул его до B2. Все это уже происходило не в Skyeng, а напрямую. Занятия длились по полтора — два часа пять дней в неделю. Параллельно я работал в Мейле, где у меня была возможность пощупать хайлоад и биг дату более плотно не на словах, а на деле. Такой масштаб я увидел впервые и это помогло мне закрыть опеределенные пробелы в своих знаних. В начале 2021 года я решил, что хватит ждать, и ответил на письма рекрутеров из Facebook и Google, прекрасно понимая, что первый блин будет комом. Однако, я надеялся выбить время на подготовку и изобразить что-то вразумительное на собеседованиях. Правда на тот момент всего процесса найма я еще не знал. Но, как говорится, глаза боятся, а руки делают.

Первым был Facebook в Лондоне. Я понял, что сначала идет звонок с рекрутером, потом фонскрин (алгоритмическая секция), затем, если все успешно, онсайт (несколько алгоритмических секций, несколько архитектурных, ну и, наконец, бихейв), дальше — зависит от компании (буткемп). Facebook выслал мне подготовительные материалы с достаточно большим количеством алгоритмических задач и дал пару недель на их изучение со словами, что если я все прорешаю, то точно буду готов к фонскрину. За две недели я осилил 20% и понадеялся на русский авось. Пришел день собеседования. Я открыл конференцию и понял, что сейчас все пойдет не так, как было запланировано. Акцент интервьюера был такой, что я с трудом понимал все сказанное им. Забегу вперед и скажу, что такого больше никогда не встречал ни на одном собеседовании. Может быть прокачал свой listening скилл, а может этот случай и вправду был беспрецедентным. Задачка попалась классическая на графы, но я этого не знал, так как до графов добраться еще не успел. Матрица и матрица, которую я сам как-то обошел рекурсивно в глубину. Дальше меня попросили сделать лучше, но про мемоайзешн я конечно же тоже не читал. По наитию попробовал сделать именно то, что от меня хотели, но, к сожалению, довести дело до конца не получилось. Через пару дней получил звонок от крекрутера и предложение пройти второй фонскрин, так как интервьюеру показалось, что я мог исполнить лучше. Не самое плохое начало — подумал я. Попросил еще две недели на подготовку и с треском провалился. Получил кулдаун на год.

Вывод оказался относительно простым. Задачки эти нужно было решать постоянно и чем больше, тем лучше. Более того, зарегистрировавшись в Telegram в FAANG чате и полистав его, я понял, что гарантий нет и быть не может. Изредка попадаются задачи, которые, если не решал ранее, то не решишь никогда. Разборки с архитектурными секциями и бихейвом я отложил на потом.

Следующим был Google изначально без привязки к локации. Со слов рекрутера я лишь понял, что быстрый путь в случае успеха вероятнее всего мне заказан в Варшаву. Для подготовки мне дали очередные две недели, но я схитрил, сославшись на то, что приболел, и таким образом выиграл до одного месяца. Я купил подписку на leetcode.com и начал решать задачи с тегом Google. Прорешал порядка 80%, остальные 20% не поддавались. Я мог накидать решение за 30 минут, но тесты не работали. Тратить на задачу безрезультатно до 2–3–4 часов я был не готов. Параллельно я подписался на моки и участвовал в них до 5 раз в неделю. Поначалу они трепали мои нервы еще больше, чем собеседования, но со временем я перестал бояться обделаться перед незнакомым мне человеком и научился относиться к этому с улыбкой и возможностью узнать что-то новое для себя. Итого, я очень неплохо выступил на первом фонскрине в Google. Задача была решена идеально. Закрыв крышку ноутбука я победно вскинул руки, понимая, что попал на онсайт. Первый рубеж наконец взят! Но через два дня я получил ответ от рекрутера, что ни на какой онсайт я конечно же не попал, потому что интевьюер заметил пару недочетов в моих суждениях. Насколько я помню, просто где-то задумался, хотя и дал правильный ответ без подсказок. Мне было предложено пройти еще один фонскрин ту кларифай самсинг. Это было как серпом по яйцам — иначе не выразиться. Я не понимал, как такое возможно, однако, убедил себя в том, что ситуация не является идентичиной ситауции с Facebook и у меня есть все шансы двигаться дальше. Надо лишь не менять вектор и жадно решать задачи. Дальше был второй фонскрин и онсайт. С онсайта я с треском вылетел, завалившись на тех же алгоритмических секциях еще в самом начале. Отмечу, что на тот момент у меня было решено порядка 100 задач на leetcode.com с упором в миддлы. Этого было явно мало.

Что делать дальше — я не понимал. В сообщениях от рекрутеров в LinkedIn было пусто. Надо было брать инициативу на себя. Я открыл свой профиль и стал искать вакансии в FAANG (и не только) в таких городах, как Лондон, Цюрих, Мюнхен, Сиэттл, Сан-Франциско и Ванкувер (как-то так выглядел мой список по приоритету). Попутно я забрасывал резюме в известные мне лично небольшие компании, такие как Arrival, Behavox и другие. Было глухо, но через месяц наконец кто-то написал сам — это был Uber. Правда Uber был из Орхуса и язык программирования был Go, а не любимый мною C++. Отчего ж не потренироваться? К тому моменту я уже приелся моками и можно сказать забросил их. А тут реальная практика, которая даже лучше. Также мне в очередной раз написал Яндекс. Я честно обозначил рекрутеру, что Яндекс для меня скорее пройденный этап и в целом могу рассмотреть компанию только ради тренировки. Но сошлись на том, что чем черт не шутит. Решать алгоритмические секции в Яндекс после 150 решенных задач на leetcode.com — это конечно не идет ни в какое сравнение с FAANG. Кому очень хочется гарантированно закрыть для себя этот формат собеседований в Яндекс — советую выделить месяц на leetcode.com! Причем можно попробовать отделаться только задачами с соответствующим тегом, коих порядка 60. Задачи в Uber оказались куда интереснее. Всякие змейки, саперы и тому подобное, да еще и не на «листе бумаги», а в онлайн редакторе с отладкой и тестами, что сжирает кучу времени, и если ты не готов к этому, то беда. Итого, в Яндекс я прошел довольно быстро, но знатно без подготовки поколбасившись на архитектурной секции, к которой у них сейчас сильно большие требования, чем были ранее. Попутно я прокачал бихейв, посетив порядка 20 финалов. Да, на русском языке, да, в Яндексе нет нормального бихейва, но все же. В Uber же дело дошло только до онсайта, подготовку к которому я отложил на месяц — полтора, нащелкав за это время до 250 задач на leetcode.com и потом технично слившись, имея на руках офферы в другие компании.

А параллельно Uber и Яндексу был еще Amazon, Bloomberg и Booking, а также стартапы и ранее упомянутый Arrival. В Arrival предложили пройти тестовое задание и выслать пример кода. Код я без проблем пошарил, а вот делать тестовое задание, когда ты решаешь каждый день алгоритмические задачки и работаешь работу, отказался. Так с Arrival мы и распрощались. Стартапы оказались совершенно другой планетой. Я разговаривал и с русскоязычными фаундерами и с нейтивами. Все сходилось к тому, что процесс собеседований очень сильно отличался от FAANG. Ты либо матчишься и часами разговариваешь свободно о том, насколько ты им подходишь, либо не матчишься и тогда вязнешь в английском языке на темы, которые ты никогда ранее не затрагивал. После пяти успешных (и не очень) попыток было решено этот сегмент для себя закрыть. Ну, а про Amazon, Bloomberg и Booking будет ниже.

Bloomberg в Лондоне были первыми, куда я подался сразу на несколько вакансий, но ни ответа, ни привета в течение месяца от них не получил. Тогда я нашел реферала среди знакомых своих знакомых и через два дня уже говорил с рекурутером по телефону. Еще через два дня со мной связались касательно оставшихся аппликейшнов. В конце концов надо было выбрать только одну вакансию. От добра добра не ищут и я остановился на первой. На фонскрине попалась задача спроектировать класс. При обсуждении условия задачи я получил хинт, который мне помог довести решение до конца без особых проблем. Думаю, что всякие бинарные кучи и очереди с приоритетами в качестве базовых контейнеров вместо мапов из векторов или малтимапов добавили мне баллов. Дальше мне назначили онсайт, но я уходил в отпуск на пару недель и попросил с этим подождать. Полностью очистив свое сознание на рыбалке в Сибири у меня оставалась всего одна неделя на подготовку. Я в очередной раз открыл leetcode.com с соответствующим тегом и обнаружил, что большую часть задач уже встречал, готовясь к Facebook и Google, а также прорешивая наперед задачи под Amazon, Microsoft, Apple и Uber на будущее. Затем начал готовить архитектуру. Освежил в памяти все то, что у меня было на архитектурных секциях в Яндекс и Мейл за последние пару лет, перелистал Designing Data-Intensive Applications Клеппманна и The System Design Primer. Настало время онсайта, который мне удалось разделить на две части. В первый день алгоритмическая и архитектурная секции, во второй — два бихейва. Причем это были понедельник и среда, соответственно, что дало мне дополнительное время на подготовку. На алгоритмической секции я получил одну задачу миддл уровня на хэш таблицу, которая в том или ином виде встречается у всех компаний, и вторую задачу на многопоточность, где нужно было исправить ошибки в уже существующем коде. На архитектурной секции, которой я боялся больше всего из-за неимения большого опыта ее прохождения на английском языке, оказалось, что никакую систему я проектировать не буду, а просто подробно расскажу об одном — двух релевантных проектах из своего резюме. Какие-то заготовки у меня уже были, но больше сошло за импровизацию. В итоге получилось неплохо и, так как мне никто не отказал здесь и сейчас, я продолжил готовиться к бихейву. Очень сильно помог мой преподаватель английского языка. На просторах интернета она раскопала поведенческие вопросы от Bloomberg и мы проработали за два дня половину из них. На оставшиеся я успешно забил, положившись на свое красноречие. Последующие два часа мне запомнились надолго. Сначала я встретил первого босса из Лондона и за полчаса рассказал ему все, что знал, а также за что, собственно, я люблю Bloomberg. Затем то же самое исполнил для босса его босса, но уже из Нью-Йорка. Отмечу, что общаться было очень приятно, а сам процесс скорее напоминал финал в Яндексе, где собеседуют не только тебя, но и ты своего будущего руководителя. К концу первого часа я уже заметно устал от насыщенности происходящего. Во втором часу меня ждал следующий босс, который три раза задал мне один и тот же вопрос. Я же три раза попросил его перефразировать, так как не понимал, что он от меня хочет. В конце концов он закончил собеседование на 5 минут раньше отведенного ему времени. Ненароком закралась мысль, что это провал. Вот так бесславно перед самой финишной чертой! Я просидел оставшиеся 5 минут, а потом еще 10 сверху в ожидании четвертого интервьюера и чуть было не закрыл вкладку в барузере с мыслью, что больше кина не будет, но не тут-то было… Четвертым интервьюером оказался рекрутер. Не совсем стандартные вопросы и мы распрощались, договорившись, что они дадут ответ в течение недели. Через два дня в пятницу вечером я получил письмо, что решение будет принято, вероятно, в понедельник или вторник следующей недели. Такой ход с их стороны дал мне понять, что им есть над чем подумать и это скорее плюс, чем минус. Иначе бы не писали, информируя о каждой мелочи. Во вторник мне позвонили и поздравили с оффером, обозначив примерные цифры и условия. Положив трубку я понял, что забыл спросить, о какой валюте шла речь. Наверно это было в долларах, а не фунтах, расстроившись подумал я и пошел готовиться к Amazon.

С Amazon в Лондоне оказалось все сложнее. Все эти 14 Leadership Principles, которые нужно было заготовить заранее, меня знатно выводили из себя. Опять помог мой преподаватель английского языка. Дело в том, что каждая секция Amazon сильно отличается от того, что я видел до этого. Перед тем, как дать задачу, тебе сношают мозг разными вопросами порядка 25 минут. И это не просто разговоры за жизнь, а проверка соответствия конкретному принципу, который заранее обозначается интервьюером. Если, например, от тебя хотели услышать про твое участие в long term проектах, а ты внезапно рассказал о том, что взял готовый открытый продукт, состряпал на коленке решение, которое потом функционировало несколько лет вплоть до твоего увольнения из компании, то это явный фейл. И совершенно неважно, сколько рублей компании ты сэкономил, потому что большие дядьки в больших компаниях пишут свои велосипеды и костыли сами. Зато поболтав первые полчаса примерно ни о чем, у тебя остается совсем немного времени на одну задачу, которая автоматически не может быть хардом. Скорее это миддл, а то и изи с фоллоу апами до миддла. Итого, с накопленным опытом решения алгоритмических задач я со свистом прошел фонскрин. Через неделю был назначен онсайт. Дальше я также неплохо выступил на двух алгоритмических секциях, а вот на архитектурных уже что-то пошло не так… А именно, сказалась усталось и отсутствие заготовок! Мои истории перестали удовлятворять тем принципам, о которых спрашивали интервьюеры, и я иногда по несколько раз пересказывал одно и то же, пытаясь правильно донести мысль до адресата. Не всегда получалось. До уровня врать и сочинять налету я на тот момент еще пока не дорос. Как вы думаете, какую систему можно спроектировать за 25 минут, когда в других компаниях на это выделается 55? Правильно! Простую! Полный экспромт, рисование на бумажке формата А4 и тыкание полученного результата в камеру ноутбука — всего этого оказалось более, чем достаточно. В результате уже в конце недели мне позвонили и сказали, что готовы сделать оффер. Каких-то конкретных цифр никто не назвал, зато прислали письмо с двадцатью командами, из которых я должен был выбрать две, чтобы устроить с ними финал. Это оказалось архи трудно! Дело в том, что Amazon был не просто Amazon и, тем более, не WS, а Prime Video. Чтобы найти там вакансию на C++, надо было сильно постараться. Все они были про эмбеддед, с которым я не хотел иметь никакого дела. Мне же нужен был хайлоад. Пришлось бы поменять язык программирования, либо вообще квалификацию. Я так и поступил — выбрал что-то с уклоном в ML и максимально подальше от Java. После двух финалов по 15 минут команда была определена и я стал ждать цифр. На тот момент Bloomberg уже сделал официальное предложение и оно оказалось в фунтах. Сверившись с levels.fyi я был несказанно рад. Цифры Amazon были практически идентичными.

Где-то сбоку болтался Booking из Амстердама. Подался я туда через реферала. Основной сложностью было выбрать вакансию не на Java. Таких, если мне не изменяет память, на синиор позицию в Booking просто не было. Собеседования имели тот же формат. Сначала один фонскрин с не самой сложной задачкой на графы, на котором присутствовало до трех разных человек, следящих за мной в фоне. А затем… Две недели ожидания новостей от рекрутера. Я даже начал было думать, что не так все гладко и прошло, но позже оказалось, что рекрутер просто не смог дозвониться мне на следующий же после собеседования день. Мы сверили номера и получилось, что он не додумкал, что делать с +7 в начале телефонного номера. И такое бывает… На онсайте была одна алгоритмическая секция, одна архитектурная и какой-то простенький бихейв. Не дожидаясь результатов, я написал в Booking, что принял оффер другой компании.

А офферов на руках было три — это Яндекс, Bloomberg и Amazon. Также было понимание, что очередного собеседования с Facebook и Google мне придется ждать полгода — год и в случае успеха (который, к слову, может и не состояться) еще столько же матчиться с командами и переезжать. Решено было выбирать здесь и сейчас из того, что есть. В Яндекс я нашел для себя команду мечты. Такое большое количество финалов позволило разобраться в том, что нравится в Яндексе, а что категорически нет. Более того, Яндекс находился под боком, там работало много знакомых и даже родственников. Но не ради этого все затевалось! Поэтому оставался Bloomberg, в котором команда как нельзя лучше матчилась с тем, чем я занимался в Мейле. Amazon мне не подходил. Переговоры с несколькими людьми из Bloomberg определили мой выбор. Поторговавшись и улучшив условия, я согласился. Дальше две недели мы обсуждали и подписывали контракт. Затем был IELTS, где я умудрился набрать 6.5 баллов при проходном 4.0 из 9 (собственно, это вроде бы и есть B2, а потом пропасть и уже C1). Параллельно был запущен бэкграунд чек. Отдельно оформил доверенность для криминал чека. После IELTS я сделал тест на туберкулез, получил межденародное водительское удостоверение и подал документы на визу. Виза была готова уже через неделю. Компания предложила перевести основные вещи морем. Через пару недель после этого я взял такси до аэропорта. Меня ждал перелет бизнес классом и размещение в корпоративной квартире в Сити в 5 минутах ходьбы до офиса.

Вот так и завершилась эта история.

Полгода активности на leetcode.com и порядка 300 решенных задач (не все доведены до конца). Две недели на подготовку архитектуры в чистом виде и еще столько же на подготовку бихейва. Вывод прост — если вы не мастер олимпиадного программирования, то готовиться нужно начинать заранее, либо растягивать сие действие на больший срок. Я делал упор на миддл и немного хард, практически не решал изи задачи. Перед каждым собеседованием за выходные обычно пролистывал заново все задачи с тегом соответствующей компании. Хорошим подспорьем в архитектуре конечно же является ваш опыт, поэтому компании, на которых вы учитесь, должны быть выбраны с умом. Стартапы, в которых я работал, а также Мейл определенно сыграли положительную роль в моей уверенности при прохождении данной секции. Бихейв заготавливается, либо приходит с опытом — не всегда достаточно просто поговорить, нужно уметь преподносить себя с лучшей стороны и делать акцент на правильных деталях.

© Habrahabr.ru