Какие этапы интервью ждут разработчика в Uber? Как расти внутри компании? Как происходит продвижение по грейдам? На вебинаре поговорили с Алиной Коваленко, Software Engineer II в Uber.
В прошлой статье она рассказывала про рабочие процессы в компании и переезде в Амстердам, в этой — сосредоточимся на практических советах и ответах на частые вопросы про релокейт.
Какие есть требования к языку?
Прокачать английский — это самое главное. Прохождение интервью итак определенный навык, а уж на английском — совсем не то же самое, что на родном языке.
Надо правильно формулировать фразы и быть очень вежливым. Например, если хотите что-то спросить, нельзя просто сказать: «у меня вопрос», вместо этого — «можно ли мне задать вопрос». В языке есть определенные конструкции, и если ты на английском не общаешься, то эти устойчивые выражения не знаешь.
Плюс стоит попробовать объяснять на английском какие-то технические вещи и решения. Мысли во время интервью итак разбегаются. Тут же на чужом языке их нужно передать людям, которые должны тебя понять, а ещё — оценить.
Я начала с того, что пошла заниматься английским именно с фокусом подготовка к интервью. Мы разбирали слова и фразы в технических задачах, например, нужно было крутить матрицу и описывать всё на английском. Тогда я первый раз услышала про clockwise и counterclockwise — до этого я таких слов не знала.
Часто спрашивают, какой нужен минимальный уровень языка, чтобы пройти собеседование и переехать. Думаю, примерно intermediate достаточно, но нужно иметь ввиду, что во время собеседования может быть некомфортно. На интервью встречаются нейтивы, и они не будут подстраиваться под ваш уровень. Могут возникнуть ситуации, когда будет сложновато — как в моём случае. На интервью с bar raiser я вообще не понимала менеджера из Дании, поэтому думала, что не прошла.
Идеальный вариант — upper-intermediate. Тогда на собеседовании более комфортно, к тому же будет возможность поддерживать разговор на профессиональные темы, и просто поболтать за обедом. Это, кстати, важный хинт — подружиться на перерыве с возможными коллегами. Иначе они могут думать, что вы — некомандный игрок, а это сыграет в минус.Я на некоторых сайтах вообще ставила автосабмит — просто чтобы войти с людьми в контакт, чтобы меня позвали и начали разговаривать, хотя бы на первых этапах. Не столько для прохождения интервью непосредственно, сколько для получения опыта.
Еще немного про интервью в Uber
Стандартный процесс начинается с phone screen interview, чтобы отфильтровать народ. Тут задают небольшую задачку на архитектуру (варианты можно посмотреть на Glassdoor, самая популярная — про автобусную остановку) и задачку на кодинг.
Как я уже говорила, onsite-интервью состоит из 6 собеседований. Технические навыки проверяют во время двух интервью на кодинг и двух на дизайн и архитектуру. Потом одно поведенческое интервью с инжиниринг-менеджером — одним из менеджеров команд, в которых вы возможно будете работать, и один bar raiser. Это интервью с сеньором, даже может быть из другого офиса. Последнее интервью нужно, чтобы найти людей подходящей культуры — человек должен не просто вписываться в конкретную команду, а в компанию в целом, и должен быть принят другими командами.
К собеседованиям готовиться надо, и какой-то одной волшебной пилюли нет. Советами делилась в прошлой статье: я сама участвую в проведении интервью и знаю, какие вопросы мы задаем. В целом ожидаем решение каких-то более реальных, прикладных задач — не про квадратные крышки люка.
Разумеется, очень важны софт скиллы. То, как человек ведет себя на собеседовании и взаимодействует с интервьюером показывает, как он будет работать в команде.
Если он будет классно-шикарно решать все задачи, но коммуникация на нуле — вряд ли попадёт в команду. Наоборот, бывает, кандидат решает что-то не до конца, но мы видим в нём потенциал — и он пройдёт собеседование.
Натренироваться проходить интервью можно, это да. Но еще нужно учитывать особенности компании: везде разные подходы к одному и тому же челленджу.
Например, в Booking у меня было 3 интервью вместо 6: одно на кодинг, одно на дизайн и одно — с инжиниринг-менеджером. В некоторых компаниях FAANG при устройстве всe задачи решают на листочке или вайтборде. За всех отвечать не могу, но большое количество компаний отправляют для первого phone screen на Codility или LeetCode, это тоже вариант.
Booking тоже присылал небольшой код-челлендж: там было 4 задачи на час. Но из-за того, что я тренировалась решать задачи из Glassdoor, всё сделала за 15 минут. Мне сказали: «вы слишком быстро решили! Давайте сразу на on-site».
LeetCode, конечно, помогает потренироваться. Но мы в Uber даём достаточно открытые задачи на кодинг, а тест-кейсы человек должен придумать сам — чтобы показать, что решение корректно работает. На готовых тест-кейсах запустить всё легко, но в реальной жизни их нет. Такая специфика компании: у нас нет тестировщиков, все тесты мы пишем сами. Так что это тоже этап проверки.
Как интервьюер говорю, что когда нам присылают информацию о предстоящем интервью, мы видим CV кандидата и примерную оценку, на какой уровень должны его рассматривать. Понятно, что если человек только выпустился из университета, его берут на позицию джуниора, это eng1. Есть кандидаты, которые находятся между eng1 и eng2, и про них говорят: оцениваем на eng2, но рассматриваем другие опции.
Бывают ситуации, когда кандидат приходит с 10–15-летним опытом, и не проходит по градации сеньора. Ему даже могут не предложить позицию eng2. Считается, что это не для специалистов с подобным опытом и подобным CV. То есть можно успешно пройти собеседование на определённый уровень, но оффер не получить.
От сеньоров ожидается более обобщенный подход, способность рассматривать задачу более высокоуровнево. Они умеют разбивать ее на подзадачи, объяснять плюсы и минусы, умеют оптимизировать решение, продумывают конкретные тест-кейсы, проверяют корректность, знают, как решение сделать готовым к выпуску и так далее. Сеньор, как ни странно, может хуже писать код, но способен рассказать всё около задачи, выполнить непрерывную интеграцию и непрерывную доставку — и тогда он успешно пройдёт интервью.
Какие компетенции оцениваются при устройстве в Uber?
Для устройства на работу и продвижения внутри компании есть компетенции, по которым оценивают людей. На технической части, к сожалению, мы смотрим только 2 компетенции из 6. Это Software Engineering: кодинг и архитектура. Все остальные — на поведенческом интервью с инжиниринг-менеджером и с bar raiser.
Первая называется Citizenship — то, как ты развиваешь культуру компании и участвуешь в ее жизни: помогаешь с код ревью, улучшаешь рабочие процессы в принципе, принимаешь участие в менторстве, хайринг ивентах и интервью. На собеседовании, соответственно, спросят, были ли вы ментором, как принимали участие в жизни компании и что делали для развития бренда.
Дальше Execution and Results — то, как планируете своё время и задачи, в определенной степени это про тайм-менеджмент, зону вашей ответственности, про размеры проекта и задач. С повышением уровня с джуна до стафф-инженера повышается и уровень ответственности, задачи становятся крупнее. Стафф-инженер будет определять таймлайны на проект сроком на год, а джуниор — недельные проекты максимум.
Следующая компетенция — Collaboration, это любые взаимоотношения с членами команды и другими командами, в том числе — разрешение и избегание конфликтов, и обратная связь — не только людям в команде, но и мнение по поводу дизайна документа, который мы делаем для фичи. То есть ты должен высказывать своё мнение, предлагать варианты, участвовать в жизни команды.
Последняя — Creating Efficiency, она связана с увеличением эффективности работы команды и компании в целом. Сюда входит всё, что связано с продуктивностью, производственной мощностью, внедрением расширяемых решений, улучшением процессов, которые происходят в команде или в компании.
Для этих четырех компетенций софт скиллов — одно общее интервью. Понятное дело, что с помощью вопросов нельзя полностью проверить, как человек улучшал и развивал компанию. Но когда просят рассказать о предыдущем релевантном опыте, надо рассказать о том, что ты делал, как это помогло команде, компании, юзерам. Главное — чтобы было видно влияние конкретно твоего решения на сферы, которые важны для этих компетенций.
Как подготовиться к части интервью на софт скиллы?
Во-первых, не врать, это 100%.
Очень популярный вопрос в этой части — про конфликт-менеджмент, как вы разрешали конфликт, если были с кем-то не согласны. Поэтому во-вторых, стоит заранее вспомнить истории и кейсы, подумать, как их преподнести в выгодном свете.
Например, ни в коем случае нельзя перекладывать ответственность на другого человека: он такой плохой, а я прекрасный-замечательный. Такой ответ скорее будет кандидату минусом. Плюсом будет рассказ о конфликте, то, каким образом вы из него вышли: поговорили с человеком, назначили встречу, пошли пить кофе, чтобы подружиться. Поэтому мой совет — поискать различные вопросы на софт скиллы и продумать ответы и примеры для каждого.
Если особенных происшествий не было, скажите честно: мне повезло, в моей карьере подобных примеров не было. В таком случае будьте готовы, что могут спросить: как бы вы вели себя в гипотетической ситуации, что бы вы делали, если бы сейчас на вас «надавили». Тут тоже можно продумать ответ заранее. Главное, чтобы он был не заученным, а личным и адекватным.
Вообще в части на софт скиллы нет правильных/неправильных ответов, вопросы больше на адкекватность. Но интервьюер всегда понимает, когда человек врёт и заранее знает «правильный ответ», а не решает поставленную задачу на месте.
У меня был опыт, когда кандидат на собеседовании честно признался, что при подготовке уже решал задачу, которую я ему дала. Я предложила два варианта: оставить эту или поменять на новую. Он выбрал поменять. Очень приятно, что человек честно признался, для него это было в плюс.
Как вырасти с миддла до сеньора?
Универсального совета нет, рост в компании происходит естественно. Для развития правильно будет брать на себя больше ответственности, более сложные задачи, быть проактивным, прокачивать все скиллы.
Например, одним из важных скиллов является стейкхолдер менеджмент. Донести, какую работу ты делаешь, какие сроки, всё ли отследили и есть ли риски — всё это очень ценится для понимания, когда проект будет запущен и какие могут быть проблемы.
От себя добавлю: продвижение можно получить, только если минимум полгода оперируешь на следующем уровне и этому есть доказательства. Мы заполняем impact resume, где указываются: скиллы, проекты, над которым работали, то, какие компетенции продемонстрировали, и ссылки на различные документы. «На вырост» следующий грейд специалисту никто не даст. Поэтому подход такой: если вы оперируете на уровне сеньора — вы его получите.
Расскажи, пожалуйста, про проактивность на своём примере: ты попадаешь в большую компанию, что дальше?
Вначале у тебя есть примерно полгода, чтобы медленно и аккуратно влиться в компанию. Тут много проектов и сервисов, может быть еще и новый язык программирования — всё непонятно, так что первые полгода от вас никто не ожидает подвигов. Впоследствии начинаешь потихоньку участвовать в жизни компании.
Например, я достаточно активно менторю: у меня есть уже двое выпускников, а сейчас под моим менторством девушка, которая учится в пенсильванском университете, и вот буквально только что написал инжиниринг-менеджер другой команды и попросил взять ещё одну.
Второй вариант — участвовать в хайринг проектах. Например, мы выезжали в Лондон и Брюссель с рекрутерской командой, завлекали людей, чтобы они пришли и оставили контактные данные, а эйчары с ними связались.
Могут быть конференции, на которых ты выступаешь от имени Uber и в том числе его презентуешь. Есть внутренние проекты. Architecture review встречи — раньше организовывали еженедельно, теперь пореже: брали какие-то статьи от разных компаний, например, Google Spanner, разбирали, как работает, какие возникают проблемы. Тут ты тоже показываешь и вовлечённость в процесс, и софт скиллы. Ещё есть culture commitee, они организовывают активности для всей команды, даже сейчас, во время ковида.
Возможностей много, и в этом надо участвовать. Для каждой компетенции ты должен показывать всё больший уровень, чтобы в результате продвинуться в карьере. Для промоушена в целом нужно быть небезразличным к тому, что происходит вокруг, и выходить за рамки стандартной зоны ответственности — не только в технических навыках, но и любых других тоже.
На самом деле, любые активности — это очень интересно, к тому же так ты знакомишься с людьми из других команд. И если тебе захочется перейти в другую, то это только плюс — ведь тебя там уже знают. Например, я меняла команду чуть больше года назад, и на момент перехода все ребята говорили: да-да, мы забираем Алину к себе! Мне было приятно общаться с ними и устраивать не кодинг-активности, а им со мной, так что они были заинтересованы в моём переходе.
Нужно ли высшее образование?
Вообще говоря, по-моему, не обязательно. Мы как раз недавно обсуждали с девушкой из Майкрософта, насколько важна вышка. Идеологически она на необходима, возьмут и без неё. Но образование, например, computer science, очень сильно помогает с базой: с базовыми подходами и алгоритмами. Это — основа всего, но и без диплома можно спокойно прожить. Если я не ошибаюсь, его никто и не запрашивает.
Насколько реально переехать, если полученный опыт — небольшой, в локальной компании?
Более чем. Я работала с коллегой из Липецка — он к моменту найма вообще не работал в крупных компаниях. Не помню, профильное ли образование у него или нет.
Большие компании помогают набрать опыт в хай лоаде, или если нужно обслуживать одновременно большое количество пользователей в достаточно сложных приложениях и сервисах, но список крупных компаний в резюме не влияет на успех. Что влияет — опыт, умения и скиллы.
Конечно, если всю жизнь делать сайты на вордпрессе, рассчитывать на переезд в компанию уровня FAANG не стоит. Но можно попробовать переехать в какой-то стартап, компанию помельче, тоже в Нидерландах, главное, чтобы она была авторизована на перевозку специалистов и предоставляла рабочие визы. Там можно набрать релевантный опыт и перейти в более крупный проект.
На какую зарплату может рассчитывать только что переехавший специалист?
Glassdoor и PayScale, конечно, не помогут узнать точную з/п, но дадут примерное представление.
Сложно говорить за разные позиции с разным уровнем, но в среднем айтишник в Амстердаме со средним опытом может рассчитывать на 65 000€ в год до вычета налогов. Понятно, что при хорошем раскладе сеньор может получать и больше 100 000€. Но если предлагают меньше 65 000€, скорее всего, вас хотят использовать как дешевую рабочую силу. На thetax.nl можно посмотреть, сколько вы будете получать с учётом 30% рулинга.
Система в целом такая: total compensation включает в себя базовую зарплату, бонусы иequity — то есть стоки. Суммарная компенсация меняется от компании к компании и от человека к человеку, потому что, например, бонус и equity не фиксированы, а зависит от вашего перформанса в течение года, плюс что-то зависит от позиции. Миддл получает примерно в 1,5 раза меньший базовый бонус, чем сеньор.
Есть ли случаи релокейта во время ковида?
Я знаю, что есть кейсы внутренних переводов: у нас должен был выйти человек из американского офиса, и собеседуется девушка из Болгарии. Внешний хайринг, в принципе, тоже открыт. Но думаю, получение визы займет больше времени, чем раньше. До пандемии можно было получить документы, грубо говоря, за месяц, сейчас — за три и больше.
Есть ли отличия в коммуникации по сравнению с русскими компаниями?
Конечно, они есть. Когда я присоединилась к Uber, нас было 70 разработчиков, а я была 25-ой русской. Когда сталкиваешься со специалистами других стран — это совершенно другое взаимодействие. Надо быть super polite: очень мягким в общении.
Например, в России код ревью происходило так: вот здесь у тебя грамматическая ошибка, здесь вызов неправильный, а тут бесконечный цикл — переделывай. И так сказать было нормально. А в Европе надо написать: «мне кажется, мы можем тут немножко переименовать, чтобы было более понятно и читаемо» или «а как ты смотришь на то, чтобы здесь переиспользовать вот это значение…» Хотя ты уже знаешь, что есть вот этот класс: возьми и используй его. Но нет, надо написать аккуратно.
То есть это такой особый способ общения, ты мягко и нежно общаешься с людьми, иногда чересчур мягко, и честно говоря, русскоговорящие разработчики страдают от недостатка этого навыка. Им сложно привыкнуть, что для того, чтобы написать письмо с просьбой, нужно писать развернуто:
Здравствуй, N!
Надеюсь, у тебя всё хорошо. Как твой день?
Не мог бы ты, пожалуйста, прислать этот файлик, когда будет время, если тебя не затруднит?
Желаю тебе хорошего дня,
С наилучшими пожеланиями,
Алина
В итоге — 6–7 предложений на одну конкретную идею: «пожалуйста, пришли мне документ». Но к этому привыкаешь. Ты видишь, что так принято, адаптируешься. Хотя иногда до сих пор сложно относиться к этому спокойно. Например, когда коллеги вместо того, чтобы прислать инвайт на встречу в календарь, сначала напишут и спросят, будет ли у меня свободное время. Сообщение это я увижу только через 4 часа, а человек в другой таймзоне и в итоге встреча перенесётся на следующий день. Вопрос — зачем?
Но это всё — культурные различия. В моей команде есть венгр, турки, русская, украинец, бразилец — то есть абсолютная сборная солянка, и у каждого свой культурный бэкграунд. Ты не можешь рассчитывать на то, что люди тебя правильно поймут, поэтому приходится находить способы общаться друг с другом — наверное, после устройства это самое сложное.
Ещё про релокейт и интервью:
Из соискателя в наниматели: продакт советует, как проходить интервью в США
Переезд инженера в Нидерланды: рулинг, кеннисмигранты, стоимость жизни
Профессиональная эмиграция: чем отличается Амстердам от Риги и Booking.com от молодого стартапа
Используйте бот g-mate (@g_jobbot), чтобы получать вакансии по своему профилю с возможностью релокации в Германию, Латвию, Эстонию и десятки других стран прямо в Telegram.