Как я наполучал лещей в погоне за иностранным оффером

👁 414

В интернете чаще всего размещается контент о секретах© успеха и способах его достижения. Историй о том, кто и как облажался встречается гораздо меньше. Я решил чуть выровнять этот дисбаланс и поделиться личной историей о том, как сам попытался заскочить на поезд релокации в 2021/22 году, срубить немного денюшек в зарубежных компаниях и что из этого получилось.

Когда получил очередной реджект из FAANGMULA

Ну что, настала пора настоящей кулстори?

Disclaimer: названия компаний тут прикрыты (потому что я шизоид), но догадаться несложно.

Вводная

Я простой русский Юрий регион Сибирь, писать много лет «весна» фреймворк микросервис компьютер перекладывать JSON, радовать родной компания получать миска-рис и кошка-жена, славить корпоративная культура получать путевка конференция. Удар!

Очередной вылезший из берлоги айтишник

Вкратце о себе: с компуктерами хоть и связан с детства, но в олимпиадах и прочих конкурсах по информатике звезд с неба не хватал, как правило доходя-таки до финалов какого-нибудь Всесиба и с диким треском в них проваливаясь. Так получилось, что в этот момент времени в моем окружении не нашлось никого, кто швырнул бы мне в ноги томик Бхаргавы «Грокаем алгоритмы», а сам я был достаточно тупой, чтобы найти какой-то материал. В отношениях же с математикой та заняла позицию лютейшей доминатрикс, посему наши токсичные отношения закончились на почетных 62 баллах конкурса «Кенгуру» в далёком 2011м.

Самая почетная грамота в моей коллекции (нет)

Впечатляющие конечно стартовые данные, не так ли? Кроме диплома «первого неклассического» университета (где впрочем мне выдали отличную базу по вычислительной технике) даже и похвастаться нечем. 

Вкупе с этим я успел поработать в подмастерьях у матерого сисадмина в среднего размера организации, вебкамщицей веб-мастером на фрилансе и джуном-андройдером в небольшой компании с АТМОСФЕРОЙ СТАРТАПА, а на сегодняшний день улюлюкаю в уютном немецком корпорате, где в АТМОСФЕРЕ СТАРТАПА педалю стильный-модный-молодежный SaaS-продукт.

Мысли о переезде

Честно говоря, мне очень повезло с детства хотя бы раз в пару лет выезжать за границу. Когда начал зарабатывать самостоятельно, тенденция продолжилась, и география посещенных мест расширялась – как внутри Родины, так и за ее пределами. Вкупе с этим у меня сложилось четкое восприятие, что страны бывают разные, уровень жизни в них бывает разный, везде есть свои нюансы, а туризм как таковой поразительно отличается от эмиграции. Не тринадцатилетняя девочка с мыслями «пора валить» после пары дней в твиттере, короче.

К тому же, для меня крайне важно чувство дома и идентичности. Мне безумно тяжело представить, как я могу отказаться от снежной зимы, родных берёзок, хрущевок серии 1-464 или распития горькой под «Новое сердце» ДДТ где-то в центре моего уютного Питера.

С другой стороны, желание получить новый опыт, возможность открыть для себя еще больше мест на карте и словить ачивку «Пожил за рубежом» все-таки перевешивало домоседство вкупе с сытой и беззаботной жизнью русского айтишника.

Было решено неспешно готовиться к собеседованиям и просматривать разного рода варианты, если таковые подвернутся. Конкретного списка стран у меня не было, ибо каждая страна хороша и интересна по-своему, а без приемлемого оффера эта затея была не очень интересна.

Спойлер:

Приемлемый оффер отнюдь не означает 300кк/сек и скупку всех соседей, но на мой скромный взгляд, труд инженера должен достойно оплачиваться.

Подготовка

Так как я задумал подготовку до того момента, как в разных комьюнити начали нещадно писать топовые мануалы к собесам, а таргет-компаний у меня как таковых не было, план изучения еще аж в 2020м пришлось сделать самостоятельно:

  • Был пройден курс по алгоритмам от Роберта Седжвика на Coursera;
  • Куплена премиум подписочка на Leetcode, вспомнил про свои аккаунты на Хакерранке, CodeSignal и прочих платформах;
  • Перечитана уйма статей и книг по Java и Spring дабы освежить знания по своим же инструментам;
  • Скачана и прочитана книжечка Cracking The Code Interview;
  • Отшиловано резюме до размера одного листа А4.

Не знаю, на что я рассчитывал, но это была такая заготов_очка на будущее. Кроме того, для подготовки я не ходил на собеседования во всякие российские банки и галеры по двум причинам:

  • Меня вполне устраивало текущее место работы;
  • Я не перевариваю душные вопросы про Spring/CQRS/Synchronized –  и сам такое говно не спрашиваю, когда провожу собесы.

В итоге вообще вышло, что долгое время не имея опыта собеседований «по ту сторону стола», я сам стучался в двери только в известные и большие корпораты. С места в карьер, да. Очень умно (нет).

Первый блин комом

Кто: Ну одна там большая софтверная корпорация делает окна всякие)))

Локация: Таллинн, Эстония

Время: Осень 2020

Прекрасным осенним вечером я просто ловил отходосы от недавнего ковида и катал очередную катку в FIFA, как внезапно в почту прилетело письмо от рекрутера примерно следующего содержания: «Ну ты вроде классный, давай пообщаемся?)))». После размышлений о том, что ничего не потеряю, даже облажавшись по полной программе, потными от волнения ладошками был напечатан утвердительный ответ. Дальше процесс был следующего формата:

  • Звонок с рекрутером, обсуждение позиции;
  • Онлайн-решалка с 3 задачами;
  • 4 интервью подряд в течение одного дня.

Где-то на этом этапе у меня перемкнуло в голове со словами «Ну и как ты будешь проходить интервью по System Design?». В срочном порядке было просмотрено с пяток-десяток индийских мануалов по систем-дизайну в ютубе. Не делайте так, читайте кабанчика заранее, пожалуйста. А еще лучше, берите на себя задачи по проектированию чего-либо в своем проекте, это реально помогает.

Онлайн-решалка же была прорешана в виде 2.5 задач / 3, после чего меня тут же позвали на онсайт.

Презабавно, но я очень нервничал и ждал именно алгоритмической секции, чтобы сразу получить по щщам и угомониться. А зря!

Round 1. System design.

Интервьюер оказался очень доброжелательным инженером, который вывалил каноничную задачу на проектирование Parking Lot. По индийским заветам с окраин ютуба я начал лихо собирать все возможные требования, набрасывать какие-то блоки и рассуждать про трейдоффы. В ответ мне накидывали новые требования к системе и следили за реакцией. В общем и целом ощущалось, что мне не хватает опыта, но фидбэк по этой части оказался хороший.

Round 2. Behavioral.

Супер-нежданчик, потому что мне казалось, что бихейв-секция всегда остается на сладенькое. Прошло просто прекрасно – начали диалог с того, как я дошел до жизни такой, закончили вот этими всеми вопросами «А расскажи про свой самый мощный импакт? Были ли у тебя конфликты в работе и как ты их решал?». По этой части фидбэк был тоже ок.

Round 3. Coding.

Тут вышло не очень круто. Как только я увидел online-IDE, сразу подумал что это алго-секция и принял позу для расчета асимптотики алгоритма. Оказалось всё совсем не так – это была задачка на ООП, где нужно было спроектировать относительно нехитрую игру наподобие шахмат. Не могу сказать что интервьюер был плохой, но мы как-то не нашли общий контакт, задизайнил я задачу плохо (потому что вообще сперва не понял что это собес на ООП, лол), хотя на теоретических вопросах вроде было ничего так. Короче, meh.

Round 4. Algorithms

АХАХАХАХА! Ну вот я и дождался сладкого момента с алгоритмами. Пожалуй, давно так не позорился. Выпала простейшая LC-Easy задачка, коих было нарешано предостаточно, и я просто не смог ее закодить – хотя на виртуальном вайтборде все выглядело просто прекрасно. На мой взгляд, все сложилось из нескольких вещей – внезапно заглючила online-IDE и было невозможно перемещаться по коду, заранее заготовленных структур данных как в Leetcode там не оказалось, а потом сказалось общее нервное напряжение и я заруинил все что можно. Очень обидно.

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

Bonus round. Algorithms

Красивая medium-задача на отрезки, допереть до решения которой я смог только к концу интервью, и только на вайтборде. Обидно, но справедливо – нужно было лучше готовиться. Reject.

Краткий итог: я не так уж и сильно ударил в грязь лицом, понял, что не фатально туп, и вообще, собеседования – это не так уж и страшно!

Русский бигтех и внезапный вин

Кто: Ну там пацаны и поиск и такси делают и все такое)))

Локация: Москва/Петербург, Россия

Время: Лето 2021

Все сложилось как один большой прикол. С момента прошлого провала я решил немного повременить с собеседованиями куда-либо, занявшись личными делами и чуть более размеренно отнесясь к подготовке. Как всегда, внезапно, прилетает сообщение в Telegram от HR: «Ну ты вроде классный, давай пообщаемся?)))»

Тут небольшое отступление: вообще, я тот еще очкодав, и хоть на просмотр вакансий смотрю трезво, рассылаю резюме и соглашаюсь на собесы не ранее чем после третьей бутылки пива.

В общем, после идеи «ты же wannabe-литкодер, сходи-ка по приколу и туда», я согласился поболтать. Звонок, обсуждение позиции, вроде даже интересно, давайте попробуем.

Процесс в эту компанию известный, описан и отбомблен во всех вайтборд-чатах и прочих Хабрах, и выглядит он безумно просто:

– Вот тебе для разминки easy-level задача. А можно быстрее?

– Вот тебе medium-задачка. Клевое решение, а можно быстрее?

– Вот тебе еще одна задачка. Клевое решение, а можно быстрее?

– Никаких тебе System Design раундов

Как ни странно, деревьев переворачивать не пришлось, все было в относительно адекватных рамках. Дальше беседа с потенциальным тимлидом «за жизнь» и помпезное оглашение оффера спустя пару дней.

Впрочем, оффер оказался не то чтобы симпатичным, позиция была не то чтобы высокой (оттого, видимо, и раундов было чуть меньше), к тому же большого желания менять работу не было (я же хотел релокацию а не вот это все), и я отказался.

Краткий итог: самооценка уравновесилась, оказалось что мало-мальски задачи я решать умею, и не все потеряно. Отличная тренировка! 

Успокоившись, я занялся более насущными вещами: графоманией всяких унылых текстов в блоге и торговлей лицом где попало. Повышать скиллы было решено неспешно, форсируя подготовку при приближении других собесов.

Загорая на пляже поздней осенью, после очередного пака мексиканского Dos Equis в голову пальнула идея еще порассылать резюме. Ответы, как водится, посыпались немного позже.

Как мы закончили, так и не начав

Кто: Ну там пацаны службу такси делают)))

Локация: Вильнюс, Литва

Время: Осень 2021

Мне непросто оценивать свой уровень касательно бигтеха: это в своем корпорате ты можешь иметь лычку супер-пупер-эксперта, но на входе у этих ребят могут быть совершенно иные требования. Так или иначе, CV по приколу я закинул на обе открытые позиции в Вильнюсе: Senior и Regular Engineer – авось, сами разберутся, куда я подхожу.

Выкатываясь дождливым петербургским утром в метро, проверяя почту, я внезапно увидел сообщение от тамошнего рекрутера: «Ну ты вроде классный, давай пообщаемся?)))». Что ж, не за этим ли я пришел? Забиваем таймслот в Calendly, заходим в Zoom. Рекрутер-британец со свойским ему accent расспросил про опыт, мои хотелки, рассказал про ультимативные плюшки позиции Senior Software Engineer в этой замечательной компании и… кинул ссылку на Codesignal. С прокторингом! Это когда ты мало того, что решаешь задачи в какой-то онлайн решалке, так еще и тебя палят по вебке. Затея 0/10, но что поделать.

Понимая, что времени у меня неделя, я начал в панике снова крутить литкод. Слава богу, через несколько дней пришел рекрутер с фоллоу-апом и радостно сообщил, что для Senior позиции у них скрининг с инженером вместо CodeSignal. Ура! Шансы есть.

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

Спустя неделю пришел рекрутер, который сообщил, что, дескать, увы и ах, но на Senior как-то ты не тянешь. Жаль, видимо я был не очень  убедителен и сделал слишком много оверинжиниринга в задаче. Договорились пообщаться спустя полгода и сразу на онсайте со всеми раундами.

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

В суть задачи не вникай, сразу кодить начинай

Кто: Ну там пацаны и ноутбуки делают и телефоны и вообще фрукты клево знаешь)))

Локация: Лондон, Англия

Время: Зима 2021/22

В общем, на ящик я получил безумно красиво оформленное письмо с основной идеей (да-да!) «Ну ты вроде классный, давай пообщаемся?)))». Малость ошалев от такого поворота событий, я радостно согласился продолжить.

Процесс должен был выглядеть следующим образом:

  • Поболтать со спецами из таргет-команды;
  • Покодить на Java и поговорить как она работает;
  • Пописать увлекательные алгоритмы;
  • Систем дизайн и снова поболтать за жизу, в том числе с Hiring Manager.

Все этапы размеренны, step-by-step, никаких тебе собесов за один день, проходишь один этап – проваливаешься в следующий.

Round 1. Call to know each other

На первом звонке присутствовали двое матерых инженеров, с которыми вышла увлекательная беседа про прошлый опыт и микросервисы. Немного порофлив втроем с их бюрократии, мы внезапно сцепились языками насчет одной технологии, на которой я успел съесть собаку и которую, как ни странно, эти ребята тоже используют у себя в команде. Получив положительный фидбэк, настала пора готовиться к следующему раунду.

Round 2. Coding

Давайте вернемся к очередности, которую я получил: там было четко написано про Java. Поэтому я потратил все три имеющиеся в запасе недели на изучение Concurrency, потрошков JVM и всякую там Java Memory Model. Литкод было решено почти не трогать.

В свою очередь, на звонке инженер расчехлил ехидную задачку на Java Iterator, в которой я ну никак не разглядел литкод. Подумав, что это надо делать именно с точки зрения Java, я начал рожать что-то стандартное. Подсказки в стиле «Let’s think outside the box» не помогли, с горем пополам и пинками собеседующего я разродился на мало-мальски рабочее решение, и этот раунд успешно завалил.

Твое лицо когда осознал простоту задачи

Надо ли говорить, что буквально спустя 15 минут после собеса я понял что это литкодовая задача и легко расколол за вечер три таких же однотипных? Фантастический провал.

Спустя еще пару дней прилетел стандартный реджект: «Спасибо что откликнулись, но мы решили не продолжать». Ожидаемо, но сам виноват.

Краткий итог: процесс у компании приятный, но нужно быть внимательнее и не додумывать за других, что там от тебя хотят на собесе.

Посокрушавшись с неделю от собственного раздолбайства, получил новый апдейт в LinkedIn.

Насколько ты лидер, братишка?

Кто: Ну там пацаны облако делают и интернет магазин и вообще оч много деняк у них))))

Локация: Берлин, Германия / Краков, Польша

Время: Зима 2022

Что же я увидел зайдя в LinkedIn в очередной раз? Ммм, «Ну ты вроде классный, давай пообщаемся?)))». Что ж, маховичок уже раскрутился по полной, давайте попробуем.

Процесс обещали следующий: вот тебе наша супер-классная платформа для решения задачек, тестов на твои LEADERSHIP PRINCIPLES, ну и архитектуры немножко. Если все будет чики-пуки, то продолжим. Эээм, sounds wierd, но давайте так, чо уж.

Итак, получив одноразовую ссылочку на онлайн-решалку, я столкнулся со следующим:

Online Round 1. Coding

Две милейшие (нет) задачки и обе, сука, на Dynamic Programming. Я бы заменил это на другую аббревиатуру с буквами DP, если вы понимаете, о чем я. С горем пополам набрал 100% в первой, а вторую просто закодил «в лоб», набрав 60%. С динамикой у меня откровенная беда, поэтому набранные баллы были за счастье.

Моя статистика с литкода выглядит просто издевательством

Online Round 2. Architecture

Вот здесь было уже интересно. Тебе рисуется интерфейс типа почтового клиента, где вы с коллегами типа разрабатываете три разные системы. Нужно выбрать в порядке предпочтения ту или иную технологию на каждом этапе в зависимости от трейдоффов и преимуществ, которые она в себе несет. Ну типа, вот есть система видеонаблюдения для метро, как хранить данные? Как их между собой гонять? А тут синк/асинк? Что же, это хотя бы было интересно.

Online Round 3. Leadership Principles

Господи, это было нудно. Делать в тесте на тонну однотипных вопросов выбор между очевидными вариантами «поступить как батя и порадовать кастомера» vs. «отморожусь пока не придет менеджер с пинками» было выше моих сил.

Так или иначе, после онлайн-решалки мне любезно предложили пообщаться с менеджером насчет LEADERSHIP PRINCIPLES, и рекомендовали для каждого LEADERSHIP PRINCIPLE вспомнить ситуацию из своего опыта, заботливо притом описав ее по STAR. Мдаконечно, но давайте попробуем.

Round 4. Leadership Principles

Вкратце можно охарактеризовать как «Ну я это». У меня не нашлось истории на каждый LEADERSHIP PRINCIPLE, а выдумывать что-то сказочное мне совершенно не хотелось. Разговор прошел 50/50, но проскакивали явные нотки, что от меня слышали порой совсем не то, что ожидалось.

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

Краткий итог: видимо, я нихрена не LEADER 🙁

Спустя неделю-две меня ждал совершенно комический нежданчик.

Такси. Добро пожаловать, снова

Кто: Ну я там про такси рассказывал уже))))

Локация: Вильнюс, Литва

Время: Зима 2022

Снова «Ну ты вроде классный, давай пообщаемся?)))», но подождите-ка, вы же вот меня зачехлили недавно! На звонке с уже другим рекрутером как-то выяснилось, что она была не в курсе моего прошлого захода, но «так как у нас на улице очередь из таких как ты», то вот тебе Codesignal на Regular позицию, набирай нужное количество баллов на задачках, а там посмотрим. Спасибо, что в этот раз без прокторинга!

Онлайн-решалка состояла из нескольких частей:

  • Вот тебе две задачки на программирование;
  • Вот тебе тест по Kafka (эм, правда?).

Задачки оказались так себе, первая была решена на 100%, вторая на 50%. Смутно помню, что там было, но кажется, первая была на Greedy Algorithms.

В тесте по Кафке я ответил правильно на 5 вопросов из 8. В сумме этих баллов не хватило на продвижение дальше, и меня (вот сюрприз!) развернули. Бывает.

Краткий итог: читайте «Замок» документацию, крутите литкод и будьте удачливее в следующий раз.

Кстати, бывалые рассказывают, что если набрать большой процент очков в онлайн-решалках в больших компаниях, то могут и сразу позвать на онсайт. Не могу сказать, насколько это соответствует действительности, сам проверить я не смог)))0)

Итоги

Дальше было немного не до хайринга (а что случилось?), а спустя некоторое время я принял приемлемый зарубежный оффер от собственной компании. Жизнь, ироничная же ты сука.

Какие выводы я сделал из этого провального хайринг-сезона?

  • Собесы в большие компании в любом случае хорошо: при подготовке к ним можно провести отличную ретроспективу собственного опыта и обновить для себя скиллы базовой Computer Science. Субъективно, я все-таки неплохо постарался для расширения собственного кругозора;
  • В большинстве случаев бигтеху насрать на чем ты там пишешь, и это просто прекрасно – тебя не будут душить унылыми вопросами про работу ZhopaContextAwareService при тех или иных условиях;
  • Я элементарно стал смелее и раскрепощеннее при общении на технические темы – дискуссия она на то и дискуссия, чтобы взвесить свою точку зрения на тот или иной счет;
  • Серьезные собеседования требуют серьезной подготовки (кэп). Нет, не надо действовать нахрапом, и лучше бы иметь какой-то подробный и работающий план. Еще лучше, если ты будешь решать действительно много сложных технических задач на работе – простым перекладыванием JSON’ов ты точно не нарастишь свои скиллы;
  • Если повезет, еще и оффер получишь, лол.

Опыт, даже негативный, это все равно опыт. Осознание своих слабых мест – прекрасный выхлоп, потому что это дает тебе скоуп проблем, над которым можно работать. В общем, я не пожалел. Буду ли пробовать еще? Why not, просто к процессу нужно подойти ответственнее и внимательнее. Побоюсь ли в следующий раз? Ну уж точно нет.

That’s all folks, спасибо что пришли на мой TED Talk!