Переезд в Берлин 2021
Около года назад мы с Олей переехали из Москвы в Берлин. В Москве Оля работала на немецкую компанию. Летом 2020 года компания решила закрыть российский офис и Оле предложили релоцироваться в Берлин. Обстоятельства сложились очень удачно: мы давно подумывали попробовать пожить за пределами России, но хотелось чтобы мы оба имели работу. Так как я программист, казалось, что мне найти работу будет проще и мы хотели чтобы сначала работу нашла Оля. В итоге, всё примерно так и сложилось: сначала около трех месяцев после переезда я потратил на подготовку к собеседованиям и около месяца прошло с момента когда я отправил первое резюме до момента когда я получил оффер в компанию своей мечты.
В этом блогпосте хочу рассказать о переезде, подготовке к интервью, поиске работы, а также о своих впечатлениях. Мне самому будет интересно почитать эти записи через пару лет и посмотреть насколько поменяются мои мысли. Этот текст — не инструкция по релокации в другую страну или по прохождению собеседования в большую IT-компанию, а просто повествование о моем опыте.
Здесь и далее фотографии просто чтобы разбавить рассказ, но к событиям в тексте они имеют косвенное отношение
Переезд
С момента получения приглашения на переезд, около полугода ушло на то чтобы оформить все необходимые документы и 5 марта 2021 года, на фоне самых жёстких антиковидных ограничений, мы прилетели в Берлин, заехали в арендованную на три месяца квартиру и засели в ней на две недели на карантин. Еще находясь в России я не раз слышал страшилки, про то что в Европе гораздо ниже уровень сервиса и доставка продуктов из магазинов и готовой еды из ресторанов здесь развиты сильно слабее чем в Москве. По крайней мере сейчас, это точно не так: в районе где мы живем работает три службы доставки продуктов (Gorillas, Flink, Foodpanda) и еще столько же служб доставки еды (Wolt, Lieferando, Uber.Eats). Кроме перечисленных сервисов здесь работает Амазон, в котором можно купить вообще всё. Другими словами, две недели карантина не доставили нам никаких трудностей. “Погулять” и подышать свежим воздухом мы выходили на балкон, а всё необходимое для жизни заказывали через интернет.
Переезд в другую страну это очень интересный опыт с точки зрения эмоций. Несмотря на то что мы переезжали в цивилизованную европейскую страну, меня не покидало легкое чувство страха и любопытства от того, что не совсем понятно что ждет нас завтра. Но именно это чувство неизведанности окружающего мира и его правил добавляет жизни красок, которые выделяют такие этапы жизни на фоне лет заполненных рутиной. Процесс переезда и поиска работы в целом мне напомнил те эмоции и ощущения, которые я испытывал во времена учебы в институте при подготовке и сдаче сессии. Вроде бы есть все что тебе нужно: материалы для подготовки, время, просто подготовься и все будет хорошо. Но несмотря ни на какую подготовку каждый экзамен вселял то самое чувство страха и любопытства. Учеба в институте один из самых ярких и интересных этапов моей жизни, наверное поэтому и переезд, вызвавший подобные эмоции, воспринимается с таким же приятным чувством.
На первое время квартиру в Берлине мы арендовали через сервис wunderflats.de еще находясь в Москве. Это сервис для краткосрочной аренды меблированных квартир. Насколько я понимаю, фактически, у этого сервиса нет альтернатив для людей, которым нужна регистрация в Берлине, но у которых нет вида на жительство. Сама квартира оказалась вполне неплохой: хорошая планировка, расположение (недалеко от Александрплац), тихий двор. При этом важно упомянуть, что сам дом — это панелька из шестидесятых годов. Огромным минусом оказался сосед, который то ли давал в своей квартире уроки игры на трубе, то ли сам тренировался играть. С понедельника по субботу, в интервалах с 10 утра и до 8 вечера по 3-6 часов в день этот ****** трубач дудел в свою трубу, а по субботам приглашал к себе в гости своих друзей-трубачей и они вместе дудели в трубы друг друга и давали выпускной концерт. К сожалению, сделать с этим ничего было нельзя. Большой недостаток wunderflats.de в том, что жильцы здесь не могут оставлять отзывы о квартирах. Скорее всего, это сделано целенаправленно, так как очевидно, что зная о таких нюансах квартиры мало кто захочет её арендовать. Если поискать отзывы на вундерфлэтс в интернете, то можно найти много примеров похожих на мой. По сути, аренда через вундерфлэтс это лотерея, в которой возможно вам повезет снять квартиру без подобных секретов, а возможно не повезёт. Но, как я уже сказал выше, для тех кому нужна возможность зарегистрироваться в квартире деваться особо некуда.
Прилетели в Берлин мы в пятницу 5 марта 2021 года, 8 марта в Берлине (но не во всей Германии!) это выходной, в 2021 году он выпал на понедельник, поэтому со вторника Оля начала (хотя скорее продолжила) работу, а я начал подготовку к собеседованиям, но к этой теме я вернусь позднее. Спустя две недели после переезда мы вышли с карантина и всё свободное время стали посвящать изучению города. Под изучением города я имею ввиду не сходить к Бранденбургским воротам и к Берлинер дому (это мы сделали еще когда приезжали в Берлин туристами), а что-то большее. Нам предстояло снять квартиру в долгосрочную аренду и хотелось прежде всего составить собственное мнение о том какие тут есть районы и как в них живут люди. В итоге, первые пару месяцев каждые выходные мы просматривали объявления о сдаче жилья, выбирали интересные варианты и ехали гулять по району, где сдаётся заинтересовавшая нас квартира.
Районов много, они разные и некоторые выглядят довольно пугающе. Например, в Кройцберге (это турецкий квартал) в Гёрлицер-парке негры в открытую торгуют травой. Выглядит это ровно так как показано в сериале “Прослушка”, мой американский коллега, когда я поделился с ним этим наблюдением, эмоционально согласился со мной что это место выглядит точно как немецкий Балтимор :) Или другой пример, в районе метро Paracelsus-Bad нас удивило две вещи: цены на жилье здесь в среднем процентов на 20 ниже чем в других районах, новые жилые комплексы здесь огорожены заборами с колючей проволокой. Выяснилось что здесь живут агрессивные бомжи, с которыми местная администрация ничего не может поделать. Но эти два примера скорее исключение и другие районы города, которые мы посмотрели, вполне приличные.
В Берлине, в отличие от Москвы, цены на жилье не сильно зависят от близости к центру. Здесь и центра как такового и нет. Если считать центром часть города внутри кольцевой линии S-bahn, то стоимость жилья в центре и на окраине может отличаться процентов на 10-20, в то время как в Москве цены на квартиру одной и той же площади на окраине и в центра могут отличаться в 2-3 раза. Поэтому в итоге мы сняли квартиру в новом доме недалеко от Александрплатц.
За время поиска квартиры мы посмотрели около 10 вариантов, несколько из них были очень хороши и мы отправляли заявки на аренду с пакетом необходимых документов, но не проходили по одному ключевому критерию. Дело в том, что в тот момент у меня пока еще не было работы в Германии, работала только Оля, а у местных лендлордов есть правило, что стоимость жилья в месяц не должна превышать одной трети (иногда одной четверти) от суммарного дохода семьи. Олиной зарплаты не хватало, чтобы претендовать на те квартиры, которые нам нравились. Для того чтобы обойти это ограничение мы стали класть в пакет документов справку о моей зарплате на английском языке, которую я взял за несколько дней перед увольнением из Яндекса (да, до переезда в Германию я около 6 лет работал в Яндексе). Фактически, я не утверждал что всё еще работаю в Яндексе, просто прикладывал справку о зарплате, датированную началом марта 2021 года. Не знаю, из-за справки это или нет, но первый же лендлорд получивший такой пакет документов одобрил нашу заявку. Ну и да, сейчас я уже работаю здесь в Берлине и зарабатываю больше чем в Москве, поэтому лендлорду беспокоиться не о чем.
Вообще, нам повезло в том, что на фоне антиковидных ограничений спрос на жилье снизился, поэтому конкуренция среди потенциальных арендаторов была ниже. Вероятно, этот факт сильно облегчил нам поиск постоянного жилья. На поиск жилья у нас ушло около двух с половиной месяцев и примерно с 20 мая все было готово к переезду в новую квартиру, старая при этом была оплачена до 5 июня, что дало нам около двух недель на покупку всего необходимого в новую квартиру. Квартира была оборудована кухней с холодильником, посудомойкой, плитой и духовкой, и ванной комнатой со всей необходимой сантехникой. Стиральную машину, кровать, мебель, полки в кладовку и мебель для рабочих мест мы покупали себе сами.
Мы с Олей оба говорим по-английски, но немецкого пока не знаем, в этой связи была пара забавных ситуаций. Жду доставку и установку стиральной машины. По плану она должна быть в 10 утра в новой квартире, но ночуем мы пока в старой так как в новой еще нет кровати. От старой квартиры до новой 10 минут на велосипеде. В районе 9 утра потихоньку собираюсь выходить из дома, как у меня звонит телефон. Беру трубку:
— “Ла-ла-ла” – что-то на немецком говорят мне, но я понимаю, что это привезли стиралку на час раньше срока.
— “Я не говорю по-немецки, говорите ли вы по-английски?” – спрашиваю я по-немецки единственной фразой, которую знаю. Далее следует короткая пауза и:
— “Руссиш?”
— “Я, я руссиш!”
— “Айн момент” – и передает трубку человеку, который говорит по-русски :)
С техникой и мебелью проблем не было, поэтому к 5 июня мы сдали старую квартиру хозяйке и полностью переехали в новую.
На этом, думаю, историю про переезд можно закончить. Еще были получение tax id и residence permit, открытие счета в банке и заключение контрактов на сотовую связь, интернет для дома, электричество, перерегистрация по новому месту жительства, но всё это довольно простые процедуры, которые подробно расписаны в интернете и не вызывали у нас никаких сложностей. Кроме того, Олина компания наняла агентство, которое должно было помочь нам зарегистрироваться в первый раз и подать заявку на ВНЖ. Хотя, с этой помощью есть пара интересных историй.
Принято считать, что немцы пунктуальные и внимательные к деталям люди. Выяснилось, что по меньшей мере не все немцы такие :) Для регистрации по месту жительства нам назначили встречу в соответствующем ведомстве и строго-настрого запретили опаздывать. Мы с Олей пришли вовремя, а женщина представитель агентства, опоздала на 15 минут, но, правда, она смогла обо всем договориться и нас без проблем зарегистрировали. Во второй раз мы пошли сдавать биометрию для ВНЖ и эта агент вообще не пришла. Она позвонила и сказала, что не может найти парковку, но, говорит: “вы идите сами, там же ничего сложного” :) В итоге да, ничего сложного и не было, у нас взяли отпечатки пальцев, спросили про цвет глаз, рост и сказали ждать документы по почте.
Мы не были уверены, что документы успеют прийти по нашему старому адресу, поэтому оплатили услугу редиркета почты. Да-да, речь о редиректе бумажной почты! Это очень полезная услуга и для ее оформления нужно всего лишь заполнить онлайн-форму и оплатить услугу.
Подготовка к интервью
Как я уже упоминал, до переезда я 6 лет работал в Яндексе. Эта работа дала мне бесценный практический опыт, несравнимый с опытом полученным во всех моих предыдущих местах работы. Я изнутри узнал из каких компонент состоят и как строятся сложные IT-системы, сам принимал участие в проектировании таких систем, решал задачи связанные с решением проблем их производительности и отказоустойчивости. Вокруг меня всегда было много людей, у которых было чему поучиться. В таком окружении быстро вскрываются пробелы в знаниях и, несмотря на то что я уже пришел в Яндекс опытным специалистом, несмотря на опыт полученный здесь у меня все равно оставался ряд пробелов в знаниях, в том числе по теории компьютерных наук. Эти пробелы мне необходимо было устранить перед началом поиска работы, так как я стремился устроиться не меньше чем в Амазон, а это одна из тех компаний, которая известна своей любовью к теоретическим задачам на собеседованиях.
Я выделил себе три месяца на подготовку к интервью, эта подготовка состояла из трех основных частей: решение задачек на leetcode.com для подготовки к теоретическому интервью; чтение книг (с той же целью); подготовка к поведенческому интервью, оно же behavioral interview. В Trello (это инструмент для управлениями задачами с очень простым и удобным интерфейсом) я на все 3 месяца по неделям расписал для себя план действий, разбитый на короткие шаги. Психологически очень важно видеть свой прогресс на пути к цели, поэтому я разложил подготовку так, чтобы хотя бы раз в пару дней закрывать одну из подцелей как достигнутую.
Занимался каждый рабочий день с 9 до 6, первые два с половиной месяца сосредоточился на теоретической части. За время подготовки я прочитал несколько книжек и, безусловно, лучшим источником информации для меня стала книга “Олимпиадное программирование” финского автора Антти Лааксонена, эта книга — эссенция необходимых прикладному программисту фундаментальных теоретических знаний, без воды и хардкорной математики. Важно отметить, что несмотря на мой большой по времени опыт в программировании (считаю некорректным измерение опыта в годах, правильнее измерять его в решенных задачах), у меня не было теоретического бэкграунда, так как высшее образование я получил в другой, хоть и тоже технической, сфере. Поэтому, скорее всего, для тех кто прослушал курс по структурам данных и алгоритмам в ВУЗе эта книга не покажется таким сокровищем как показалась мне, но, тем не менее, ее можно использовать как отличный справочник по основным алгоритмам.
Также важной составляющей подготовки к интервью стал платный аккаунт на литкоде. leetcode.com — это большой сборник задачек с собеседований с возможностью порешать их в онлайне. Один из плюсов платного аккаунта в доступе к подборкам задач с интервью определенных компаний. Не знаю насколько это полные и точные подборки, в моем случае задачи на интервью в Амазон не имели ничего общего с задачами из подборки, но важно то, что становится понятен список категорий задач, и можно сосредоточиться на усилении своих знаний в тех темах, задачи в которых пока получается решать хуже других. Так я с полного нуля научился решать задачки на динамическое программирование, одна из задач этого класса попалась мне на интервью. Кстати, глава про динамическое программирование в книжке Антти Лааксонена довольно слабая, прокачать понимание этой темы мне помог курс на ютюбе от freeCodeCamp.org, очень-очень рекомендую.
Изначально я решал задачки в своей любимой IDE (упрощенно говоря, это продвинутый текстовый редактор для программистов), но затем решил делать это в веб-редакторе литкода. Да, он по своим возможностям сильно слабее популярных IDE, но зато тренирует навык писать код в условиях приближенных к условиям интервью. До пандемии на интервью в офисе, компании типа Амазона просили решать задачи или на листе бумаги, или на маркерной доске. В условиях пандемии и онлайн-интервью задачи решают в онлайн-редакторе по своим функциям не сильно более продвинутом чем простой блокнот. Вообще, на эту тему ходит много споров: многие программисты считают нелепым решение задач на бумажке/вайтборде/блокноте, так как в реальных рабочих условиях программисту доступна интегрированная среда разработки (IDE) с подсветкой ошибок и опечаток, подсказками аргументов функций, умной навигацией и т.п. Такие ограничения на интервью ставят программиста в нереалистичные условия, в которых он не может показать свои возможности на 100%. Я не стану обсуждать за и против таких интервью, просто выскажу свое отношение к такому подходу. Можно считать такие условия — правилами игры, которые кандидат должен принять, если хочет получить работу в той или иной компании. Вероятно, устраиваясь в безымянную компанию я бы и не стал пытаться играть в такую игру, но при попытке устроиться в крупную компанию со всеми их заранее известными плюсами, нет причин не принять эти правила игры.
Кроме книг по алгоритмам я также изучал материалы по функциональному программированию. Последние два года в Яндексе у меня были связаны с языком Scala, который сочетает в себе элементы объектно-ориентированных и функциональных языков. Мы в большей мере использовали Скалу как объектно-ориентированный язык, но знание функциональных фич языка сейчас больше востребовано в вакансиях Скала-девелоперов. Эта концентрация на Скале была моей ошибкой: я знал, что в Амазоне и других топовых компаниях этот язык не востребован, но если бы я не смог пройти в компанию вроде Амазона, то рассчитывал поискать место в компаниях второго эшелона где нужны Скала-разработчики. Фактически, я готовился сразу к двум типам интервью, это съело часть моих времени, сил и, как выяснилось позднее, оказалось ненужным. Сейчас, если бы мне нужно было пройти этот путь заново, то я бы стал целенаправленно готовиться под требования конкретной компании и только в случае неудачи переключился бы на подготовку у собеседованию в другое место с другими требованиями.
Я уже проводил параллель между переездом в другую страну и учебой в ВУЗе, подготовка к собеседованиям это еще одна такая параллель — фактически, это и есть подготовка к экзамену, только в этом случае ты только в общих чертах представляешь что тебя ждет, никаких заранее известных билетов и тем.
Последним пунктом подготовки стала подготовка к behavioral interview. Этот тип интервью может показаться несложным и не очень важным, но на самом деле он практически также важен как и теоретическая часть, так как провал поведенческого интервью, даже при блестящем прохождении теоретического, означает отказ в приеме на работу. У Амазона есть отличный сайт amazon.jobs, на котором подробно расписано что ожидает кандидата на интервью и что ожидается от него, как строить ответы на вопросы и какие типы вопросов можно ожидать. Эти материалы я взял за основу своей подготовки к интервью.
Если попытаться коротко объяснить суть поведенческого интервью, то одна из его составляющих это неприятные вопросы типа “Был ли у вас проект, который вы завалили по срокам? Как вы себя вели в этой ситуации?”, “Были ли по вашей вине сбои в продакшене? Как вы решали такие проблемы?” и много других подобных вопросов про то как что-то пошло не так и как вы вышли из этой ситуации. Вторая составляющая этого типа интервью, в контексте Амазона, конечно же, — это соответствие лидерским принципам Амазона. Лидерские принципы Амазона — это 14 лозунгов вида “Заслужи доверие!”, “Ориентируйся на результат!” и т.п. По каждому из принципов на интервью могут спросить как ты его понимаешь и можешь ли ты привести примеры из своего опыта, в которых ты проявил эти качества. При этом важно иметь наготове несколько историй, а не пытаться вспомнить какие-то примеры на лету.
При подготовке к этому типу интервью я вспомнил и записал десяток историй из своего опыта, а потом категоризировал их так, чтобы они относились к одному или нескольким принципам Амазона. В итоге получилось около 40 страниц текста! Я был чрезвычайно горд собой, ведь вот какой у меня богатый опыт и сколько всего интересного есть рассказать. Затем мы с Олей стали по 2-3 раза в день проводить тестовые сессии: мы созванивались по скайпу сидя в разных комнатах и Оля выступала в роли рекрутера, а я отвечал на вопросы. Оказалось, что мои 40 страниц текста это слишком-слишком много! Отвечая на вопросы я не укладывался ни в какие разумные рамки, я мог в течение 15-20 минут рассказывать о каких-то незначительных и, скорее всего, непонятных деталях задач, которые решал; или мог, увлекшись, сильно уйти в сторону от исходного вопроса. В течение около двух недель я структурировал свои сорок страниц историй из опыта так, чтобы каждая история состояла из короткого обзора, который можно рассказать за 2-3 минуты, и нескольких деталей, с ответами на потенциальные вопросы, каждая деталь также не больше чем на 1-2 минуты. В итоге я получил короткую выжимку из всего своего опыта, мог и вкратце, и развернуто рассказать о самых интересных этапах своей карьеры.
Вообще, подготовка behavioral interview показалась мне довольно полезной разминкой для ума даже вне контекста подготовки к интервью. Такое структурирование имеющегося опыта позволяет упорядочить и трезво взглянуть на свое прошлое.
Ход собеседований
Как и практически любому современному программисту мне много приходилось работать с разными базами данных, а для эффективного их использования важно понимать как они работают внутри. Пока я разбирался с базами данных с точки зрения пользователя я понял, что мне очень интересна эта тема и мне захотелось углубить свои знания. Для этого я, в рамках своей почти трехмесячной подготовки, прошел отличный бесплатный курс “Intro to Database Systems” от университета CMU созданный Andy Pavlo, затем стал читать (но пока еще не дочитал) фундаментальнейшую книжку “Database System Concepts” от Abraham Silberschatz и других авторов. Я был очень рад узнав, что в Берлине есть представительства минимум двух больших компаний, разрабатывающих БД: Амазон здесь разрабатывает свою облачную графовую БД Amazon Neptune и компания Snowflake свою одноименную реляционную распределенную облачную аналитическую БД.
Изначально я не хотел откликаться на вакансии в те компании где я действительно хочу работать, а вместо этого планировал потренироваться на компаниях попроще. Например, я не был уверен в своем английском языке и “разогревочное” интервью могло мне придать уверенности (или наоборот). Но в итоге я отказался от этой идеи так как посчитал ее некрасивой по отношению к компаниям, на которых я бы потренировался проходить собеседования. Да и время тратить на это уже не хотелось, я рвался в бой!
Окончание моей подготовки выпало на конец весны. Я обновил свое резюме, профиль на linkedin.com и 20 мая я отправил свое резюме на первую вакансию. В Амазон. Я не знал как скоро ждать реакции на свой отклик, но не стал сразу отправлять резюме в две компании, чтобы графики собеседований не пересекались.
Ответ я получил в среду 26 мая, в нём мне предложили пройти онлайн-тест на платформе hakerrank, это один из аналогов литкода. Тест состоит из двух задач и двух коротких эссе, в которых надо было расписать почему я решил задачу именно таким образом. На всё это дается 105 минут. Пройти тест нужно в течение недели с момента получения письма. Перед прохождением теста давалась одна попытка испытать себя в пробном тесте, который по своей структуре полностью совпадает с боевым. В ближайшее воскресенье я прошел пробный тест, сделал это не идеально. На каждое решение задачи система запускала от пары десятков до почти сотни тестов. Я решил обе задачи, но оба моих решения прошли тесты не на 100%, а процентов на 60-70. Тесты падали либо по времени, либо по памяти на больших объемах данных.
Основной тест я решил пройти в 8 утра в понедельник 31 мая. Утро я выбрал чтобы решать задачки на свежую голову, да и не хотелось ходить полдня и нервничать перед сдачей теста. Но с утра мне и моему мозгу нужно немного разогнаться, прежде чем я выйду на пик мысленной активности, а это важно для такой ответственной задачи. Поэтому перед тестом я для разогрева ума решил пару простых задачек на литкоде. Такая разминка оказалась очень эффективной и перед всеми другими своими интервью я повторял эту практику.
В этот раз моё решение первой задачи проходило все тесты, а решение второй опять только около 60-70% и опять оно падало по времени на больших данных. У меня был реализован прямолинейный квадратичный алгоритм, я придумал как решить задачу линейно, за один проход, но не успел реализовать подходящий алгоритм. Задачки я бы оценил как medium с литкода, но обе они были на знание базовых алгоритмов. Например, первая задача была на знание того, что такое массив префиксных сумм. Я это знал (спасибо “Олимпиадному программированию”), поэтому мое решение легко прошло все тесты. Наивное решение этой задачки тоже работало бы за квадратичное время и наверняка падало бы на последних тестах.
После решения задачек был еще большой психологический тест, но он уже не был ограничен по времени и пройти его было легко, хотя и он оказался не без подвоха. Почти все вопросы имели следующий вид: дается два утверждения и оценкой от 1 до 5 надо выбрать то, которое тебе больше нравится, где 1 - полностью согласен с первым утверждением и полностью не согласен со вторым, 5 - согласен со вторым и не согласен с первым, 3 - согласен по чуть-чуть и с тем, и с другим. Проблема в том, что часто утверждения были не противоречащими друг другу и очевидно правильного ответа не было. Кроме того, утверждения иногда повторялись в немного отличающихся формулировках. Но на фоне решения задачек это было довольно простое упражнение где я просто честно выбирал ответы, не пытаясь угадать какого ответа от меня ждут.
Несмотря на неидеальность моего решения, спустя пару дней, 3 июня мне пришло приглашение пройти онлайн-интервью с людьми, которое мы назначили на 14 июня.
Интервью проводила девушка из Индии и понимать ее английский мне было довольно сложно. Она рассказала о себе, о команде, о том как будет проходить интервью. Затем мы немного поболтали обо мне и перешли к решению задачи. Задач в теории могло быть две, но я успел решить только одну. Задачка была на динамическое программирование, здесь я сразу уловил тот нюанс, что решать её нужно рекурсивно и кешировать результаты рекурсивных вызовов, но совсем забыл о том, что при рекурсивных вызовах могут возникнуть бесконечные циклы. Когда мне указали на этот нюанс я быстро внес правки учитывающие эту особенность.
Код в этом интервью я писал в веб-редакторе без возможности его скомпилировать и, к своему стыду, код я написал такой, что он скорее всего бы не скомпилировался :( Тем не менее, 23 июня мне прислали приглашение на финальное интервью. Это должно было быть 6 интервью в один день. Его предварительно назначили на 12 июля.
Теперь в своем повествовании я вернусь на пару недель назад. Почти сразу после прохождения онлайн-теста для Амазона на хакерранке, 2 июня, я отправил свое резюме в Сноуфлейк. 8 числа мне написал рекрутер и девятого мы уже с ним пообщались. Это была более-менее неформальная встреча, на которой я рассказал о себе с своем опыте, а рекрутер о компании. Предполагаю, что это интервью было первым фильтром, который я успешно прошел и на 15 июня мне назначили интервью с инжиниринг менеджером, в команду которого я собеседовался.
Должен отметить, что в Амазоне для такой огромной компании все процессы работают очень быстро, на каждом этапе собеседований были понятные сроки, в которые я должен был получить ответ и эти сроки выдерживались. После начала общения с Амазоном принятие каждого следующего решения (о том прохожу ли я к следующему этапу или нет) занимало не больше чем три дня. Потом правда собеседование назначали на дату почти через две недели от текущей, но это не большая проблема, главное, что не приходилось долго ждать результатов.
Однако, даже по сравнению с такой быстрой работой Амазона, Сноуфлейк сработал на сверхзвуковой скорости. Здесь у меня не было онлайн-ассессмента, а первое интервью на кодинг с человеком мне назначили на 17 число. Но тут в дело вмешалась погода. В середине июня 2021 года в Берлине стояла испепеляющая жара, температура поднималась до 36 градусов! Я выпивал литров пять воды в день, весь холодильник забил килограммами льда, но все это не спасало от жары и духоты, а кондиционеров в большинстве берлинских квартир, включая нашу, нет. Полноценно думать в такой жаре, да еще и в условиях волнения от собеседования, я не мог. Поэтому интервью перенесли на 23 и 24 июня, к этому времени температура спустилась к приемлемым 25 градусам. Это было два часовых интервью на кодинг с двумя разными ребятами. В понедельник 28 июня мне сообщили, что я прошел на следующий этап и мне сразу назначили 4 интервью: два на кодинг, оба в среду этой же недели; одно на экспертизу, в четверг; и одно behavioral в пятницу. В пятницу же в 9 вечера по берлинскому времени со мной созвонился рекрутер и сообщил, что мне готовы сделать оффер.
Еще до отправки резюме я для себя решил, что Сноуфлейк для меня более интересный проект (это отдельная большая тема, не хочется уделять ей внимание здесь), поэтому, я не задумываясь принял оффер. Примерно неделю спустя мне прислали официальное предложение работы, но прежде чем его отправить компания запросила у меня контакты людей, которые смогут меня порекомендовать. Спасибо коллегам из Яндекса: Илье, Никите и Святу (перечислены в алфавитном порядке) за положительный фидбек :) Получив официальный оффер, я написал в Амазон и попросил отменить оставшееся интервью.
Таким образом, от отправки резюме до оффера в Сноуфлейк у меня прошел ровно один месяц. Это даже не сверхзвуковая, а сверхсветовая скорость! А с момента переезда, до момента получения оффера прошло меньше 4 месяцев. То есть мой план по подготовке к собеседованиям и поиску работы сработал настолько идеально, насколько это вообще можно было себе представить.
Еще примерно через месяц я сидел в бир-гартене в Берлине с новой командой, пил пиво, болтал на какие-то отвлеченные от работы темы и поймал себя на мысли, что еще пару лет назад я даже вообразить не мог, что смогу так спокойно и уверенно чувствовать себя не только в новой незнакомой компании, но еще и в компании людей не говорящих по-русски. Я испытал чувство, которое мог бы испытать абитуриент сдавший на все пятерки вступительные экзамены в топовый ВУЗ (хотя мне оно и незнакомо :)), чувство морального удовлетворения от того, что ты успешно выполнил большую сложную задачу, в какой-то степени преодолел себя, заставил себя выйти за границы привычной комфортной жизни и открыл путь к новому опыту, а также испытал ощущение того, что самое сложное и интересное приключение ещё ждет меня впереди. Теперь можно было смело встать перед зеркалом, посмотреть себе в глаза и сказать: “Рома, ты молодец, возьми с полки пирожок”.
Задачи на интервью в Сноуфлейк я также оценил бы как medium на литкоде: походить по дереву в ширину и в глубину, повертеть связанным списком, пожонглировать битиками; спроектировать LRU-кеш, планировщик задач; отмасштабировать код сначала с одного потока на всю машину, а потом и на кластер машин и т.п. В этот раз собеседования проходили в редакторе, который позволял скомпилировать и запустить код, поэтому весь мой код оказался рабочим :)
Во время интервью с Сноуфлейком было несколько забавных моментов. Несколько человек пришли в Сноуфлейк из берлинского офиса Яндекса, на одном собеседовании был такой диалог:
— “О, ты тоже из Яндекса, ты наверняка знаешь Алису и Боба 1, они тоже работали в Яндексе”.
— “Дружище, как ты себе представляешь Яндекс? Там работает тысяч десять человек! – думаю я про себя, а вслух говорю, – Боба я знаю, у меня с ним интервью было, а Алису нет”.
На другом интервью разговариваю с будущим коллегой американцем, который работал в IBM, Амазоне и других крупных IT-компаниях, короче говоря, человек выглядит хорошо ориентирующимся в индустрии:
— “О, ты работал в Яндексе, у нас есть несколько человек оттуда. Они все очень умные и трудолюбивые. Наверное хорошая компания, но я о ней вообще ни разу не слышал, до того как пришел в Сноуфлейк”.
В разговоре с тем же коллегой я ляпнул какую-то фразу, он замолчал на секунду и сказал:
— “То что ты сказал грамматически неверно и не имеет смысла, ты имел ввиду это или это?”
Вообще, тема моего владения английским языком беспокоила меня не менее сильно, чем подготовка к техническим интервью, но, к сожалению, в отличии от решения задачек на динамическое программирование, для прокачки этого навыка недостаточно в течение нескольких месяцев прочитать пару книжек и поиграться с онлайн-тренажером. С одной стороны я не сомневался, что проблем с языком у меня быть не должно: я долгое время занимался с преподавателем и не испытывал никаких проблем в путешествиях и онлайн курсах на платформах типа Coursera и Udemy, где я прошел не меньше десятка курсов на технические темы на английском языке. С другой стороны, смотреть видосики на Udemy и общаться в реальном времени на профессиональные темы это совсем не одно и то же.
Первые полгода работы
В Яндексе я работал на позиции Senior Software Engineer, но здесь решил податься на уровень ниже: во-первых, разработка баз данных это для меня совсем новая предметная область, ну а вторая причина описана выше — язык. Сейчас, спустя полгода работы, я понимаю, что принял верное решение. Первое время понимать коллег было очень сложно и энергозатратно, если в день было хотя бы 2 митинга по часу (такое не часто, но бывает), то после второго я чувствовал себя настолько опустошенным, что никаким умственным трудом заниматься больше не мог.
Я надеялся, что месяца за 3 войду в ритм, привыкну к акцентам, манере речи коллег, используемым идиомам и общение не будет отнимать столько энергии, но этого не произошло. Да, общаться стало легче, но я по прежнему понимаю, что не всегда могу дословно выразить свои мысли или понять то, что говорят мне. После трех месяцев работы я начал заниматься английским с преподавателем, на этот раз с нейтив спикером, и теперь ощущаю прогресс в своем уровне владения языком, но, тем не менее, мне еще предстоит потрудиться, прежде чем я смогу чувствовать себя совершенно свободно в англоязычной среде.
Про проект что-то конкретное рассказывать не буду, тоже только поделюсь своими впечатлениями: большой сложный интересный востребованный рынком продукт, много команд разработчиков, очень много крутых профессионалов, blameless-культура и понимание того, что люди вокруг всегда готовы прийти на помощь. Работа мечты.
-
имена изменены. ↩︎