Джун в 29: был архитектором, а стал разработчиком в eBay
Как джун готовился к интервью с европейскими рекрутерами, познавал особенности мировоззрения немцев и непривычное отношение к работе.
Иллюстрация: freepik / rawpixel / Freepik / Дима Руденок для Skillbox Media
Меня зовут Алекс, мне 29 лет. Я так называемый свитчер — три года назад решил сменить профессию с инженера-архитектора у застройщика на фронтенд-инженера. Для этого пошёл на курсы, но учился не с полной отдачей. Например, однажды скопировал чужой проект с GitHub и выдал его за свой, потому что не успевал. На обучение потратил очень много времени и денег, но мог бы получить больше знаний, если бы сильнее старался.
Затем устроился работать в «Новый Диск» — компанию, которая занимается цифровыми образовательными курсами. Где за полтора года получил опыт и понимание, что мне нужно снова пойти учиться. Тогда пошёл на другие курсы и там честно выстрадал свои знания. Одновременно с учёбой работал поочерёдно ещё в двух стартапах на полставки и готовился к эмиграции.
Прошёл через страдания и бедность
На старте карьеры, ещё до того, как я нашёл первую работу в IT, мне пришлось в два с половиной раза уменьшить свой доход.
Любая трата больше 50 рублей подвергалась сомнению: «Пройтись мне 15 минут до дома или сесть на маршрутку?» Для меня это был действительно серьёзный вопрос. Моя одежда приходила в негодность, но это не была задизайненная рваность. Аренда комнаты, еда и траты на связь занимали больше 80% дохода первые полтора года.
У меня была машина, которую я просто не мог содержать при моём уровне дохода в 50–60 тысяч рублей. Тогда я решил пользоваться машиной вместе с другом, разделив с ним траты. Это очень помогло, хотя по амортизации, естественно, я остался в минусе. Но только так я мог сохранить авто. Само собой, про кофейни и крафтовые бары я должен был забыть, так и не узнав, что это.
Также я хотел бы подсветить трудности, связанные с обучением. Мне приходилось самостоятельно искать решения и постоянно что-то спрашивать. В ответ я получал направление, куда думать дальше, но готовые ответы — никогда.
Я не верю, что параллельно с таким обучением можно полноценно работать. Обучение заняло год, и половину этого времени я работал. Первые три месяца обучения информация была для меня не новой. У меня уже было понимание адаптивной вёрстки, основ JS, я делал уже знакомые вещи, это не вызывало затруднений.
Но как только стала появляться новая информация, пошла жара. Я не мог совмещать это с работой на фултайме. Думаю, кейсы тех, кому это удалось, — исключение, и их не стоит учитывать как статистически важные. А уж тем более говорить, что так получается у многих. Это не так.
Прошёл 64 интервью
Моя жена получила оффер в немецкую компанию, и мы переехали в Германию. Я сразу же начал искать работу, и поиски заняли восемь месяцев.
Мне кажется, что в России я бы не справился с таким длительным периодом найма. У меня там было гораздо меньше собеседований, я не так активно искал работу и менее системно подходил к поискам, потому что после 50% собеседований у меня оставался очень неприятный привкус из-за попыток интервьюеров самоутвердиться за мой счёт. А за восемь месяцев собеседований в Германии я ни разу не получил критики из-за того, что чего-то не знаю.
Когда начал участвовать в собеседованиях в европейские компании, завёл табличку в Notion, чтобы посчитать число пройденных интервью. В общей сложности их оказалось 64. Число компаний меньше, так как с некоторыми работодателями было несколько раундов. В нескольких компаниях я даже дошёл до последнего раунда, что было очень круто. Прошёл в итоге в eBay, где сейчас и работаю.
Пройдя такое количество собеседований, я могу разделить их на три типа.
Интервью с фаундером. Он же будет твоим лидом. Так бывает в небольших компаниях с малым ресурсом, поэтому процесс непредсказуемый. С одной из таких компаний я дошёл до последнего этапа, но в финале мне предложили очень долгий тест и у меня не хватило внутренней мотивации выполнить его хорошо. Сделал без особого рвения, просто чтобы попрактиковаться, и даже не получил обратной связи.
Компании со смешанными инструментами рекрутинга. Сначала общаешься с HR, потом проходишь техническое собеседование. Эту схему найма используют стартапы и компании средней величины, которые не выделяют много времени и ресурсов на регламенты.
Крупные игроки, у которых процесс рекрутинга выстроен в несколько этапов. Так было в eBay, Zalando, Amazon и ещё в нескольких компаниях. Они задают тренды рынка, а маленькие участники пытаются быть похожими на них. В этом случае сначала следует знакомство с HR компании или с внешним рекрутером. Примерно 15 минут занимает проверка адекватности, уровня владения английским, визовых аспектов. Для начала выясняют, нужно ли вам получать разрешение на работу, где вы территориально находитесь, когда можете переехать.
После этого назначают собеседование с менеджментом или HR‑специалистами. Его основная цель — понять, как вы разрешаете конфликты и насколько знакомы с Agile.
На следующем, продуктовом, собеседовании спрашивают про рабочие ценности, выясняют уровень заинтересованности в продукте. На сайте работодателя обязательно пишут об этом, поэтому перед собеседованием с каждой компанией я просматривал их ownership mindset (те самые рабочие ценности) и пытался имплементировать их в свой ценностный бэкграунд.
Так было с eBay: меня брали на продукт, который представляет собой платформу для продажи автомобилей. А у меня как раз был опыт перепродажи автомобилей, благодаря чему я знал процесс со стороны пользователя.
Мне очень помогали в процессе сами интервьюеры. Даже если что-то не получалось, они были готовы подсказать или перейти к следующему вопросу. При необходимости я мог что-то погуглить, а они смотрели, как именно я это делаю. Это тоже полезная информация для собеседующего. Такие условия очень сильно помогали не бояться браться за сложные задачи.
Проходя собеседования, я узнал много нового, постоянно подсвечивал пробелы в своих знаниях и прямо в процессе интервью выписывал проблемные моменты. Например, я не знал, что такое хоистинг, а ещё меня совершенно выбил из колеи вопрос на одном из первых собеседований: «What is closures?» Я всю жизнь читал профессиональные источники на русском языке и не догадался, что closures — это известные мне замыкания.
Вообще, предварительно выписать примерно 50 терминов на английском из фронтенда будет полезно каждому. Кроме того, я выписал себе и термины, связанные с Agile. В итоге у меня были заготовки ответов на все вопросы, кроме комплексного задания по дизайну систем.
Рекомендую смотреть видео, как проходить интервью в конкретную компанию, например, на ютуб-канале Amazon есть видео о прохождении интервью в Amazon.
В коде европейских интервьюеров интересует ход мысли, креативность и разносторонность подходов соискателя. Но зато на продуктовом собеседовании и на собеседовании с менеджером требуют чётких ответов. Это не только моё мнение, такую особенность заметила и моя жена, принципал-дизайнер, которая перевезла уже двоих соотечественников к себе в компанию.
Выполнял тестовые задания
Техническое тестовое задание в eBay было несложное. Нужно было сделать простое fullstack-приложение в духе того, чему учат на курсах. Это связка Express с React с использованием CSS-фреймворков, деплоем и описанием этих процессов в readme.
Приложение представляло собой grid-сетку карточек нескольких автомобилей, данные для которых отображаются адаптивно и с возможностью их удаления. Нужно было написать фронт и простой бэк с базой данных.
Проходить тестовые помогает практика решения задач на LeetCode. Мне это очень помогло, потому что многие тестовые приходится выполнять на платформе, предоставленной работодателем. LeetCode помогает не забыть методы, которые используешь редко, — что особенно актуально, если не имеешь опыта работы или работаешь с вёрсткой, а не с JS.
Самый сложный для меня этап собеседования — дизайн систем. До этого я ещё не проектировал архитектуру приложений, в которых используется несколько баз данных, и не представлял, как можно связать несколько таких клиентов.
На собеседовании мне предложили представить интернет-магазин. Нужно было сделать виджет с обновляемой корзиной. Проектировать это всё предстояло в пустом вордовском документе, онлайн-доступ к которому открывал интервьюер. Это меня просто уничтожило, потому что я никогда не описывал дизайн систем текстом: либо рисовал, либо воплощал в коде. Возможно, мне предложили сделать дизайн системы, потому что я от безысходности откликнулся на вакансию уровня middle.
Особенность найма в Европе состоит ещё и в том, что почти не было мгновенной обратной связи. Здесь в ответ либо получаешь поддержку, либо «покерфейс». Конкретно в eBay я встречался со сдержанностью в общении на всех этапах, кроме этапа общения с командой. На последнем этапе было неформальное собеседование: просто пообщался с командой о погоде, природе, механических клавиатурах.
В российских компаниях чаще говорят прямо: «Это говнокод, это плохая практика». Но на собеседованиях в европейских компаниях этого не встречалось никогда. Вместо этого была обтекаемая формулировка: «Я думаю, это не лучшее решение, мне кажется, это можно было сделать иначе». То есть никогда не было травмирования, доведения до абсолюта, всегда использовались смягчающие формулировки, которые дают шанс исправиться или поспорить. То есть если ваш код всё-таки хороший, у вас есть возможность это доказать.
Техническая часть собеседований сильно различалась от компании к компании, но было и нечто общее — приходилось презентовать код. Несколько раз я отправлял тестовое задание или выполнял что-то на платформах для решения задач. После этого нужно было рассказывать, какой подход я использовал и какие из первоначальных идей оправдались, а какие нет. Также я объяснял, почему выбрал именно такой стек технологий, и говорил про слабые стороны приложения в файле readme. Мне нужно было пройтись по коду и всё прокомментировать. Так уж получалось, что каждый раз я оказывался к этому не готов, но, на удивление, получал позитивные отклики — иногда даже спустя долгое время.
Переписывал CV девять раз
Первые четыре версии моего CV можно было выбросить на помойку. Сначала я просто перевёл резюме с русского на английский, но так не работает. Нужно полностью его переписать, придерживаясь определённых правил.
Не проявлять творчество. Сейчас это правило актуально и на российском рынке, но в Европе оно особенно важно. Мне пришлось избавляться от несерьёзного тона, удалять эмодзи. Неуместные шутки проглатывали на родине, но не проглатывают здесь.
Лучше сделать стандартный Word-документ в две колонки с фотографией или без (в CV для американского рынка труда фотографию лучше не ставить). Тут всё просто: кому какая разница, как выглядит инженер — человек, который пишет код. Более того, иногда фотография может быть даже негативным фактором для нанимателя. Хотя в Германии это пока не так принципиально и фотографию можно поставить (если есть прям сильное желание показать себя).
Спросить мнение у других. Я запрашивал фидбэк у знакомых мидлов и сеньоров. Это, кстати, был самый действенный шаг к улучшению резюме и всего, что его окружает, потому что ребята-ревьюеры прошлись не только по самому CV, но и по моим профилям в LinkedIn и на GitHub, а также выполненным тестовым заданиям.
Добавить примеры. После фидбэка от ребят я добавил больше конкретики в резюме: вместо формулировок вроде «занимался очисткой бэклога и разработкой новых фич приложения» у меня появились такие фразы: «переписал 30% кода на TypeScript», «нарисовал три всплывающих окна — pop-up», «оптимизировал бутылочное горлышко — узкое место, ограничение в системе получения данных».
Поработать над ошибками. Кроме того, я попросил друга устроить разнос моего тестового задания. Он очень опытный фронтенд-инженер, разбирается в настройке окружения фронтенд-разработки. Я получил от него 15 замечаний по тестовому заданию и смог учесть их. Очень простой пример: я не знал про систему проверки правописания — spell checker — в коде. В результате у меня было много опечаток, которые режут глаз, особенно если вы native English speaker.
Написать сопроводительное письмо. Считаю, что оно тоже сыграло роль в моём найме. У меня нет подробного фидбэка, почему именно меня взяли, хотя я и спрашивал об этом менеджера. Данные обновляются каждые полгода, поэтому информация по моему процессу найма уже удалена и достоверного ответа получить не удалось. Однако менеджер вспомнил, что в мою пользу сыграли и бэкграунд в автомобильном ретейле, и заинтересованность в продукте.
Я лично отношусь к сопроводительному письму как к чему-то обязательному. HR может рассмотреть 100 человек с идеальным резюме, но если только у одного будет сопроводительное письмо, это может сработать. Это выделяет вас из толпы, помогает запомниться.
Иногда HR, который уже набрал 100 резюме от кандидатов, думает: «Всё, больше не буду смотреть», но потом ему попадается превью из сопроводительного письма, он читает первые пару строк и его что-то цепляет.
Я бы посоветовал изучать каждую компанию в отдельности, не рассылать всем копипасту своего резюме с сопроводительным письмом. Мне кажется, это тоже было одной из моих ошибок — и я потратил на неё кучу времени. Лучше было бы выделять для себя приятные компании, пропускать через личный фильтр, писать для них отдельные CV и сопроводительные письма, переставляя свои достижения в подходящем для каждой вакансии порядке.
Мне повезло, я довольно старомоден в вопросах деловой переписки. Как позже узнал из общения с HR-специалистами, соискатель не должен писать нанимателям в WhatsApp, Telegram. Люди, которые нарушают личные границы HR, не попадают в итоговый пулл-лист — причём независимо от своих скиллов.
Важным навыком оказалось соблюдение структуры письма. Казалось бы, просто поле ввода сообщения, но важно было узнать, от кого именно это сообщение, и написать: «Dear *имя*», потом одну строчку сообщения, а в конце «Best regards».
Трудоустройство отняло уйму времени. Цикл найма в eBay длился пять месяцев: первый раз мы связались с их эйчаром в ноябре, в марте начались собеседования, и только в конце мая я получил оффер. Такие сроки — не что-то исключительное, у жены была аналогичная ситуация в другой крупной и известной компании — в Европе все собеседуются по полгода.
В восторге от новой работы
Здесь очень крутой темп разработки. Например, у нас нет дедлайнов. Мне рассказывали, что изредка бывают какие-то фичи, которые нужно задеплоить к определённой дате. Например, когда случился ковид, нужно было сделать ковид-инфобаннер. Но в большинстве случаев сроки всегда диктуют инженеры, а не менеджеры, потому что менеджеры не знают, как это сделать.
Очень нравится, как настроено окружение — в том числе защита от ошибок, связанных с человеческим фактором. Тесты обязательно прогоняются локально и в пайплайнах, ревьюят код минимум два человека — код-оунер и лид. Потом тесты проходят ещё раз, после них — end-to-end-тесты, и только после двух ревью возможно слияние кода. Для продукта всегда есть два домена, один основной, другой non prod — сам код там абсолютно тот же, зато есть возможность тестировать его, не переполняя базы данных и не ломая метрики.
Ещё тут совершенно потрясающий трекинг приложений. Отслеживаются все ошибки, с которыми столкнулись пользователи, их частота и условия. Важно, что их можно приоритизировать.
Люди трекают перформанс в приложении, которое рисует очень красивые графики. Задеплоил картинку — перформанс приложения просел, и это сразу видно. В Slack тут же приходит уведомление от бота, что перформанс упал на 7%. Тот, кто недавно задеплоил публичную ветку, может ответить боту, должно ли так быть.
Еженедельные встречи предполагают обсуждение технических вопросов между командами, многие делятся опытом. Так люди узнают, какое нововведение попробовали коллеги, какие у него плюсы и минусы.
Любая технология описывается в большой корпоративной «Вики». Например, если мы используем TypeScript, то будет описание на две страницы, почему именно его — с перечислением слабых и сильных сторон, подсвечиванием методов и особенностей архитектуры. Во внутренней «Вики» можно найти страницу практически по любому аспекту проекта, а если что-то найти не получается — достаточно просто спросить в корпоративном канале, и коллеги подскажут.
Существуют и особенности в управлении. Над нами нет менеджера в привычном понимании. В нашей команде по два специалиста на каждой роли: продакт-менеджер и product owner, два бэка, два фронта, два iOS-инженера, два Android-инженера. Product owner просто обозначает направление работы. Сроки обозначаем мы. Менеджер выполняет работу «смазывания узлов»: комфортно ли нам, всё ли необходимое есть для работы, остался ли у нас неиспользованный бюджет на обучение.
Я ни разу не видел, чтобы менеджер лез во внутреннюю работу или в сроки, непосредственно в код. Он помогает организовывать процесс, но никогда не говорит, кому и что нужно сделать.
На первых порах меня бесили ретроспективы, но потом я начал привыкать. Мне было непонятно, зачем они нужны, но с психологической точки зрения это очень полезная вещь. Даже если они длятся долго и кажутся бесполезными.
Было очень приятно узнать, что джунам тоже выдают хорошее оборудование. Мне выдали Mac Pro 2019 года с touch bar. Не М1, к сожалению, но я бы получил М1, если бы устроился на полтора месяца позже — тогда как раз вышел новый регламент по обеспечению инженеров.
Мне купили клавиатуру Mac, купили touch pad, выдали монитор. Приходили разные коробки с мерчем, вкусностями и очень красивой сумкой для ланча. Она оказалась неудобной, но в целом мне понравилась: чёрно-оранжевая с надписью «Pro Contech» красивым шрифтом. Как можно таким не любоваться?
Важное отличие в организации труда — автоматизация всего, что не связано с прямой работой. Например, денежные выплаты. Никто никогда не спрашивает, получил ли я зарплату, это просто не обсуждается.
В компании работает восемь тысяч человек, у нас есть еженедельные созвоны с СЕО вертикали, и он уже третью неделю извиняется перед тремя людьми, у которых были какие-то проблемы с оплатой работы. Я осознал, что в этом важнейшее отличие — способность сотрудника любого грейда, любой роли признать свои ошибки.
Мне было очень приятно увидеть, как Head of HR на какой-то встрече на 100 человек извинялась перед кем-то, что она назвала человека «он». В этом конкретном случае это был небинарный человек. Возможно, HR не до конца поняла, что произошло, но мне понравилось, что это было озвучено.
У меня тоже была небольшая путаница на старте работы в компании: я везде указываю своё имя как Алекс — на английском через x. Когда HR запрашивал мои данные, они не уточнили написание. А формально там Алекс пишется через ks. Из-за этого возникла небольшая неразбериха с бейджами и доступами. Менеджер объяснил, что для формальных внутренних процессов нужно «формальное» имя.
Джуниор получает здесь хорошие деньги — даже будучи джуном, вы не будете голодать. А для повышения грейда важен стаж. Мой техлид, самый опытный человек из всех, кого я видел, рассказал, что на позицию senior не может претендовать человек с тремя годами опыта. Ему просто не хватит насмотренности.
До сих пор не победил синдром самозванца
На первом месте работы в IT у меня был страх, что я староват для джуниора. Оказалось, возраст в Европе не имеет значения, в команде все старше меня, у жены на работе — так же. Средний возраст сотрудников — 40 лет, джуниором можно быть и в 50, это вообще не имеет значения. Более того, конкретно в Германии дискриминация по возрасту — это преступление.
Ещё я тревожился, что у меня неподходящее для IT образование — было чувство, что работодатель узнает об этом и поймёт, что я не настоящий разработчик. Переживал я и из-за уровня английского, а также из-за того, что на моё место претендуют выпускники европейских вузов. Однако в итоге все эти страхи не оправдались: квалификации и образования хватило.
Тем, кто тоже хочет попасть в крупную компанию джуном, я бы посоветовал не переживать из-за российского паспорта. Какой-то не такой паспорт — это даже не тема для обсуждения. Европейским компаниям не нужны скандалы, они заинтересованы в diversity.
Я работаю над своим синдромом самозванца с психологом. Это долгий и дорогой терапевтический процесс. Но он помогает определить, что именно на вас давит. Например, в первый месяц работы я сходил с ума, потому что мне не могли выдать все доступы. Я очень переживал из-за того, что не начал работать с первого дня, как это обычно происходит в российских компаниях, что я бесполезный. Психотерапевт спрашивал тогда, что на меня так давит. Вместе мы пришли к выводу, что давлю на себя я сам. Это была неочевидная для меня мысль.
В общем, с синдромом самозванца мы идём рука об руку всю жизнь. И это, наверное, хорошо. Потому что если вы уверены в своих действиях, то не ставите под сомнение то, что вы делаете. Даже в обучении всегда есть сомнительные решения и методы, всегда есть что улучшить. Но этого никогда не получится, если не критиковать себя и не сомневаться.
Не сдавайтесь — и всё получится
Переезд в Европу с визой по поиску работы обычно проходит без проблем. Нужно накопить денег, но если их нет, можно сделать небольшой чит и сказать работодателю, что вы уже переехали в страну назначения или в какую-то третью страну. Ведь собеседовать человека из России дистанционно в нынешней ситуации — долго и рискованно. Мало какие компании на это сейчас согласятся.
Важно уделять внимание не только хард-, но и софт-скиллам, потому что в европейском инженерном сообществе люди крайне отзывчивы. Доброжелательность, так называемый принцип be nice, — не просто пожелание, а требование.
Английский тоже очень важен. А ещё не лишним будет изучить Agile-принципы: как с их помощью разрешать конфликты и настраивать процессы, что такое кросс-функциональная команда и чем она отличается от других. Когда менеджер услышит знакомые слова, он поймёт, что вы знаете терминологию, и это станет ещё одним очком в вашу пользу.
Я советую тем, кто хочет пройти путь, аналогичный моему, не опускать руки. Многих пугает, что компании сейчас не релоцируют джунов. Но визы по поиску работы всё ещё существуют. Да, за ваш переезд не заплатят, возможно, даже не выдадут рабочий компьютер. Но думаю, что на начальных этапах карьеры это не самая большая трудность.