Начиная поиск работы, я никак не могла поверить, что имею реальный шанс на получение должности в Facebook.
Пять месяцев спустя я получила письмо с предложением.
Это путешествие состоит из ожиданий и неожиданностей. В своём рассказе я поделюсь всем полученным опытом и сделанными в процессе этого путешествия открытиями.
Я проработала разработчиком ПО в Samsung Electronics на протяжении двух лет и планировала менять работу. Я занялась полноценным поиском вакансий в июле, начиная подготовку наряду с отправкой резюме известным гигантам tech-индустрии, за исключением Facebook. Думаю, что прежде, чем пробоваться в эту корпорацию, мне сначала хотелось проявить себя уверенно на собеседованиях в других компаниях.
Во время поездок на работу или в перерывах между подготовками к собеседованиям, я начала изучать LinkedIn. Вскоре это превратилось в одержимость. Я искала HR-специалистов компаний, в которые хотела устроиться, чтобы отправить им электронные письма (если почта была указана в разделе контактов) или просто сообщения. Я не ожидала никакой серьёзной отдачи, но этот процесс поиска придал мне некий задор и оптимизм, что помогло пройти через стадию подготовки, которая, уж поверьте, требует немалых усилий.
Совет: LinkedIn — это отличная платформа для установки связи с работодателями, но здесь необходима настойчивость. Не стесняйтесь обращаться к незнакомцам. Я получала ответы от HR-менеджеров таких компаний, как Amazon, Microsoft, Snapchat, Bloomberg и Apple, после простой отправки им сообщения.
К счастью, письмо, отправленное в августе, обернулось звонком из Facebook.
Совет: Получение первого звонка от работодателя — это наиболее затратная по времени стадия поиска работы. Начинайте подавать заявки на вакансии, даже если чувствуете себя неподготовленными. Вы можете попросить у работодателя месяц и даже более на подготовку до назначения первого собеседования.
Ожидая лучшего, но готовясь к худшему, я взяла трубку. Это оказался HR-менеджер из подразделения Facebook AR/VR.
Справка: Facebook разбит на подразделения, которые производят найм сотрудников независимо. Этими подразделениями являются Facebook Engineering, AR/VR и AI.
Звонившая девушка задала мне вопросы, касающиеся моей текущей должности и опыта работы. Большую часть своей карьеры я была разработчиком C/C++ и не имела опыта в XR. К моему разочарованию, я не подходила на роль, подразумеваемую менеджером. Она сказала, что мою кандидатуру рассмотрят только при условии, что я отлично покажу себя на этапе телефонного собеседования, поскольку мои текущие навыки не совсем отвечают необходимым в команде.
Открытие: В тот момент инженерное подразделение рассматривало только кандидатов с опытом работы от семи лет. По всей видимости, в августе в Facebook заканчивается цикл найма, когда необходимое число сотрудников за год уже найдено и вакансий остаётся очень мало. Я чувствовала, что будет проще устроиться после октября, когда начнётся новый цикл найма.
Я назначила свой технический тест через две недели. Формат собеседования подразумевает 45-минутный опрос. Вопросы были базовые и подразумевали несложный код (задача по массивам и строкам). Сейчас же я хочу затронуть тему тестового запуска.
Тестовый запуск: На собеседовании ваш код не компилируется и не запускается. Поэтому для проверки собеседующий просит произвести тестовый ввод и показать, как он будет выполняться через код.
Совет: Тестовый запуск— это отличный способ произвести отладку кода во время собеседования. Не забудьте включить тестовые запуски в этап подготовки к собеседованию.
На второй вопрос собеседующего я придумывала два решения и оба их ему объясняла. Затем он попросил меня сравнить решения и проанализировать преимущества одного над другим. Пять минут в конце собеседования выделяются на встречные вопросы. Не думаю, что эти пять минут принимаются в расчёт при оценке качества кандидата, поэтому беспокоиться здесь не о чем.
Совет: Leetcode известен как отличный сайт для подготовки к собеседованиям, и я обратилась именно к нему. Ещё одна менее известная, но очень ценная его часть — это Leetcode Discuss. На этой странице люди делятся опытом своих собеседований (а также вопросами, которые на них были заданы) и, поверьте мне, эти вопросы реально повторяются.
Процесс собеседования в Facebook достаточно быстрый. Спустя два дня я получила ответ от менеджера и вылетела в Лондон уже для прохождения собеседования на месте. Всего было намечено четыре этапа.
Задаются два вопроса, на каждый из которых отводится по 45–50 минут. В моём случае были затронуты области бинарных деревьев, строки, стек и список. Сначала вы обсуждаете решение с собеседующим, а затем пишете код на доске.
Совет: В коде всегда есть пограничные случаи, которые нужно обработать, а сделать это, находясь во взволнованном состоянии, достаточно сложно. Мне в этом случае помогла техника тестового запуска. Сразу после написания кода решения, я сказала собеседующему, что собираюсь выполнить его тестовый запуск на общем примере и сначала выполнить отладку своих ошибок. Очевидные ошибки в коде выявляются самим первым тестовым запуском, поэтому лучше обнаружить их самостоятельно, чем позже при собеседующем. Выполнение таких тестовых запусков даёт время подумать над пограничными случаями, которые затем можно будет включить в код.
Это интересный этап, являющийся новым для начинающих разработчиков. Его задача в проектировании системы с нуля. Инструкция, как правило, выглядит так:
Это собеседование определённо требует особой подготовки.
Радует то, что верных ответов нет. Вы должны защитить выбранные вами проектные решения и знать о компромиссах, на которые пришлось пойти.
Этот этап самый лёгкий, но не стоит раньше времени расслабляться, поскольку отрицательные балы, полученные в этом собеседовании, могут стоит вам заветной должности. Вопросы вращаются вокруг нетехнического опыта вроде навыков лидерства, командного духа, вашей реакции на критику и т.д. Этот набор вопросов практически всегда одинаковый, а значит и ответы можно заготовить заранее.
Совет: За день до собеседования пробегитесь по списку поведенческих вопросов и повспоминайте смешные истории из профессиональной жизни, которыми можно подкрепить ответы на эти вопросы. Используйте этот этап собеседования, чтобы расслабиться между более серьёзными техническими этапами. Заряд уверенности, полученный в его процессе, поможет поднять боевой дух.
Спустя неделю я получила ответ на собеседование. Мне казалось, что я справилась по истине хорошо, но ответ был для меня неожиданным. Я получила уверенное одобрение по двум из собеседований, одобрение по одному из двух собеседований по написанию кода и отрицательную оценку за проектирование системы. Ниже я привела ценные выводы, которые сделала на основе опыта и обратной связи.
Я поговорила с HR-менеджером и выразила своё замешательство. Я была почти уверена, что получу предложение, и ответ стал для меня неожиданностью. Я никогда не думала, что проектирование системы может иметь такое значение. К счастью, мне было назначено ещё два собеседования, одно по проектированию систем и одно по написанию кода. Я снова полетела в Лондон, чтобы пройти собеседование в другую компанию, а заодно и в Facebook. Честно говоря, я была сильно истощена таким количеством собеседований на протяжении последних пяти месяцев и получением ряда отказов.
Эти два собеседования были последними на стадии поиска работы, и я просто хотела, чтобы эта стадия уже наконец закончилась. На этот раз я освежила свои знания по проектированию систем и имела об этом процессе лучшее представление. Сначала у меня было собеседование по написанию кода, которое прошло прекрасно. В собеседовании же по проектированию поставленная задача относилась к функции популярного мобильного приложения. На сей раз мы обсуждали проектирование гораздо детальнее, проводя многочисленные анализы наподобие необходимого количества систем на сервере, размера базы данных и т.д. Теперь я выложилась на 100%, и у нас получилось хорошее обсуждение.
Совет: При подготовке к собеседованию по проектированию систем важными разделами являются: сбор требований, определение протокола, высокоуровневый дизайн, схема базы данных, оценка размера данных, дизайн компонентов и компромиссы.
Ответ пришёл спустя две недели, и на этот раз он был положительным. Мне предложили позицию E4 в подразделении Facebook Engineering. (Изначальные вакансии в Facebook AR/VR уже были заняты). Я думаю, что проектирование систем имело такую высокую значимость потому, что инженеры E4 должны помимо программирования разбираться ещё и в нём.
Я никогда не ожидала, что смена работы может оказаться настолько трудной. Теперь же я вполне могу понять досаду тех из вас, кто испытывает в этом процессе сложности. События вокруг нас не всегда идут так, как планировалось, и в собеседованиях всегда присутствует воля случая или просто элемент удачи. Вот взятая из эпоса “Бхагават Гита” цитата на санскрите, которая помогает мне сохранять спокойствие духа в подобных жизненных ситуациях:
“У вас есть право лишь на труд, но не на его плоды. Не позволяйте плодам своих действий становиться вашим мотивом, но и не впадайте в бездействие”.
Всех вам благ!
Перевод статьи Kriti Joshi: Insights and My Experience From My Interview at Facebook.
Комментарии