В интернете чаще всего размещается контент о секретах© успеха™ и способах его достижения. Историй о том, кто и как облажался встречается гораздо меньше. Я решил чуть выровнять этот дисбаланс и поделиться личной историей о том, как сам попытался заскочить на поезд релокации в 2021/22 году, срубить немного денюшек в зарубежных компаниях и что из этого получилось.
Disclaimer: названия компаний тут прикрыты (потому что я шизоид), но догадаться несложно.
Вводная
Я простой русский Юрий регион Сибирь, писать много лет «весна» фреймворк микросервис компьютер перекладывать JSON, радовать родной компания получать миска-рис и кошка-жена, славить корпоративная культура получать путевка конференция. Удар!
Вкратце о себе: с компуктерами хоть и связан с детства, но в олимпиадах и прочих конкурсах по информатике звезд с неба не хватал, как правило доходя-таки до финалов какого-нибудь Всесиба и с диким треском в них проваливаясь. Так получилось, что в этот момент времени в моем окружении не нашлось никого, кто швырнул бы мне в ноги томик Бхаргавы «Грокаем алгоритмы», а сам я был достаточно тупой, чтобы найти какой-то материал. В отношениях же с математикой та заняла позицию лютейшей доминатрикс, посему наши токсичные отношения закончились на почетных 62 баллах конкурса «Кенгуру» в далёком 2011м.
Впечатляющие конечно стартовые данные, не так ли? Кроме диплома «первого неклассического» университета (где впрочем мне выдали отличную базу по вычислительной технике) даже и похвастаться нечем.
Вкупе с этим я успел поработать в подмастерьях у матерого сисадмина в среднего размера организации, вебкамщицей веб-мастером на фрилансе и джуном-андройдером в небольшой компании с АТМОСФЕРОЙ СТАРТАПА, а на сегодняшний день улюлюкаю в уютном немецком корпорате, где в АТМОСФЕРЕ СТАРТАПА педалю стильный-модный-молодежный SaaS-продукт.
Мысли о переезде
Честно говоря, мне очень повезло с детства хотя бы раз в пару лет выезжать за границу. Когда начал зарабатывать самостоятельно, тенденция продолжилась, и география посещенных мест расширялась – как внутри Родины, так и за ее пределами. Вкупе с этим у меня сложилось четкое восприятие, что страны бывают разные, уровень жизни в них бывает разный, везде есть свои нюансы, а туризм как таковой поразительно отличается от эмиграции. Не тринадцатилетняя девочка с мыслями «пора валить» после пары дней в твиттере, короче.
К тому же, для меня крайне важно чувство дома и идентичности. Мне безумно тяжело представить, как я могу отказаться от снежной зимы, родных берёзок, хрущевок серии 1-464 или распития горькой под «Новое сердце» ДДТ где-то в центре моего уютного Питера.
С другой стороны, желание получить новый опыт, возможность открыть для себя еще больше мест на карте и словить ачивку «Пожил за рубежом» все-таки перевешивало домоседство вкупе с сытой и беззаботной жизнью русского айтишника.
Было решено неспешно готовиться к собеседованиям и просматривать разного рода варианты, если таковые подвернутся. Конкретного списка стран у меня не было, ибо каждая страна хороша и интересна по-своему, а без приемлемого оффера эта затея была не очень интересна.
Приемлемый оффер отнюдь не означает 300кк/сек и скупку всех соседей, но на мой скромный взгляд, труд инженера должен достойно оплачиваться.
Подготовка
Так как я начал подготовку до того момента, как @begor начал нещадно писать топовые 300кк/сек мануалы к собесам, а таргет-компаний у меня как таковых не было, план изучения пришлось сделать самостоятельно:
- Был пройден курс по алгоритмам от Роберта Седжвика на 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.
Насколько ты лидер, братишка?
Кто: Ну там пацаны облако делают и интернет магазин и вообще оч много деняк у них))))
Локация: Берлин, Германия / Краков, Польша
Время: Зима 2021/22
Что же я увидел зайдя в 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 🙁
Спустя неделю-две меня ждал совершенно комический нежданчик.
Такси. Добро пожаловать, снова
Кто: Ну я там про такси рассказывал уже))))
Локация: Вильнюс, Литва
Время: Зима 2021/22
Снова «Ну ты вроде классный, давай пообщаемся?)))», но подождите-ка, вы же вот меня зачехлили недавно! На звонке с уже другим рекрутером как-то выяснилось, что она была не в курсе моего прошлого захода, но «так как у нас на улице очередь из таких как ты», то вот тебе Codesignal на Regular позицию, набирай нужное количество баллов на задачках, а там посмотрим. Спасибо, что в этот раз без прокторинга!
Онлайн-решалка состояла из нескольких частей:
- Вот тебе две задачки на программирование;
- Вот тебе тест по Kafka (эм, правда?).
Задачки оказались так себе, первая была решена на 100%, вторая на 50%. Смутно помню, что там было, но кажется, первая была на Greedy Algorithms.
В тесте по Кафке я ответил правильно на 5 вопросов из 8. В сумме этих баллов не хватило на продвижение дальше, и меня (вот сюрприз!) развернули. Бывает.
Краткий итог: читайте «Замок» документацию, крутите литкод и будьте удачливее в следующий раз.
Кстати, бывалые рассказывают, что если набрать большой процент очков в онлайн-решалках в больших компаниях, то могут и сразу позвать на онсайт. Не могу сказать, насколько это соответствует действительности, сам проверить я не смог)))0)
Итоги
Дальше было немного не до хайринга (а что случилось?), а спустя некоторое время я принял приемлемый зарубежный оффер от собственной компании. Жизнь, ироничная же ты сука.
Какие выводы я сделал из этого провального хайринг-сезона?
- Собесы в большие компании в любом случае хорошо: при подготовке к ним можно провести отличную ретроспективу собственного опыта и обновить для себя скиллы базовой Computer Science. Субъективно, я все-таки неплохо постарался для расширения собственного кругозора;
- В большинстве случаев бигтеху насрать на чем ты там пишешь, и это просто прекрасно – тебя не будут душить унылыми вопросами про работу ZhopaContextAwareService при тех или иных условиях;
- Я элементарно стал смелее и раскрепощеннее при общении на технические темы – дискуссия она на то и дискуссия, чтобы взвесить свою точку зрения на тот или иной счет;
- Серьезные собеседования требуют серьезной подготовки (кэп). Нет, не надо действовать нахрапом, и лучше бы иметь какой-то подробный и работающий план. Еще лучше, если ты будешь решать действительно много сложных технических задач на работе – простым перекладыванием JSON’ов ты точно не нарастишь свои скиллы;
- Если повезет, еще и оффер получишь, лол.
Опыт, даже негативный, это все равно опыт. Осознание своих слабых мест – прекрасный выхлоп, потому что это дает тебе скоуп проблем, над которыми можно работать. В общем, я не пожалел. Буду ли пробовать еще? Why not, просто к процессу нужно подойти ответственнее и внимательнее. Побоюсь ли в следующий раз? Ну уж точно нет.
That’s all folks, спасибо что пришли на мой TED Talk!
Классный пост! Жду апдейта с success story
Ну ты вроде классный, давай еще! :)
Ты искал вакансии просто на сайтах компаний которые были интересны?
Очень круто, спасибо за рассказ! Подскажи, сколько по времени у тебя занимало прохождение этапов в разных компаниях? Почему спрашиваю: весной смотрела вакансии и оказалась не готова к тому, на какой долгий срок может все затянуться. Привыкла к тому, что в РФ часто бывает быстрее.
Спасибо, что поделился! Как ты готовился к сис дизайну? Есть какие-то рекомендации?
Почти как про себя читала, только без хеппи энда.....
Примерно так и прошли мои многократные интервью в Гугл, Фейсбук, линкедин. Да.
Очень классный пост получился, спасибо что поделился!)
Спасибо за пост! У меня ушло 1.5 года от первого собеседования в зарубежную компанию до первых офферов. Приятно знать, что не один такой 😅
Свой первый собес в зарубежную компанию у меня произошел неожиданно, просто рекрутер сама написала в Линкедин. Собес был один единственный технический, без лайвкодингов. Получил оффер который тут же принял. Еще бы, сразу 4x к моей тогда еще первой зарплате джуна. Но это удаленка.
Над вторым же оффером, уже с релокейтом, год спустя пришлось попотеть похожим образом. Заняло 3 месяца. Все эти лайвкодинги, сисдезы и бехавиорал. Даже не знал, что со всем этим придется столкнуться. Системный дизайн я явно не тянул с моими 2 годами опыта, а интервьюеры всегда хотели слышать больше, чем я успел узнать на ютубе. В итоге получилось пройти в компанию где было 2 комплексных техсобеса сразу с лайвкодингом и сисдизом, с одними и теми же людьми. Видимо в таком случае общее впечатление о тебе остается хорошим, даже если где-то лажанул, но в целом был ок, и наверх уходит сбалансированный фидбек. В случае же с отдельными собесами по каждому чиху, ты зависишь от слишком большого количества людей и хер его знает в каком виде все это дойдет до хайринг менеджера
Спасибо за твой текст! Теперь мне еще страшнее искать работу, вроде и не джоины туда-сюда перетаскиваю, а все равно нет уверенности, что попадется именно та задачка, которую сможешь решить(
Привет коллега))
Супер крутой и интересный пост, спасибо!
Привет, а офер от телекома в Бонн? или предложили вне Германии?