Как стать автором
Обновить

[Личный опыт] Фронтенд-инженер из лондонского Facebook: как попасть в FAANG?

Время на прочтение 17 мин
Количество просмотров 19K
Всего голосов 23: ↑18 и ↓5 +13
Комментарии 28

Комментарии 28

НЛО прилетело и опубликовало эту надпись здесь
Да, это точно старость.

А я себя наоборот слишком зелёным, типа лет 20 назад думал "не боги горшки обжигают, месяца-другого достаточно чтобы освоить всё необходимое для любой позиции программиста, боги — это архитекторы и аналитики", а после подобных статей понимаю, что и джуном в компании с таким подходом к найму не пройду. Годы фуллтайм учёбы нужны

У меня тоже было такое ощущение, которое в статье мы описали как "все вокруг умнее" — оно больше про работу в корпорациях, но и на собеседовании проявляется достаточно чётко. Вокруг и правда много людей умнее или опытнее — и "годы учёбы", которые вы упоминаете, тоже не помешают. Но если вы начинаете не с нуля, у вас есть релевантный опыт и желание подготовиться к собеседованию (а не к "крутости компании", это важно!), всё получится.

НЛО прилетело и опубликовало эту надпись здесь

Вы поднимаете очень интересную тему.


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


Более того, сила техногигантов, на мой взгляд, не в их крутейшем коде (хотя и в нём тоже), а в размере (рынка, прибыли, сотрудников). Гипотетически, я бы нанимал как можно больше людей, чтобы проверять как можно больше идей (на микро- и макро-уровнях, внутри существующих продуктов и как совершенно новые инициативы) — ведь всё равно никто не знает что делать. А тут уже относительно абстрактный показатель качества или чистоты кода не слишком важен — вероятно, код будет выкинут, либо, если идея выстрелит, его потом десять лет будут рефакторить уже другие люди.

НЛО прилетело и опубликовало эту надпись здесь

Можно поискать в интернете — много кто делился тем, как устроен найм в гуглах и прочих амазонах. В основном это engineering managers, которые видят. Может быть на канале Etsy Engineering что-то есть, не помню.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

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

Согласен с вами, с опытом переезд ради переезда уже не так интересен. Как и работа ради работы. Тем не менее, нам (программистам) очень повезло, что индустрия позволяет по сути без единой сложности переехать почти в любую страну мира, где развит технологический сектор — и иметь это в виду, на мой взгляд, полезно.

Статья огонь, огромное спасибо!

Пожалуйста, рад, что вам понравилось. Можете ещё вебинар посмотреть — он получился достаточно живым.

Если есть задание спроектировать Twitter или Instagram, а о них знаешь только что первое для публикации коротких сообщений, а второй для публикации фото, то опишут целевую систему подробно или можно сразу прерывать интервью с фразой типа "извините, но мне нужно какое-то описание системы, которую я проектирую, основные юзкейсы хотя бы. Или время на изучение системы, клон которой надо сделать".


Попадались подобные задачи и долго искали вариант, который был бы известен обоим. Пару раз так Хабр проектировал :)

Как раз от вас они ожидают, что вы будете задавать правильные вопросы интервьюеру, чтобы получить некоторое описание, юзкейсы и т.п.

Это достаточно канонические примеры. Считается, что если вы интересуетесь высоконагруженным вебом, то знаете, что интересного в архитектуре Твитера или Инстаграма — оптимизация БД для чтения или записи, синхронизация и шардирование, кэеширование и так далее, а также всякие приколы из разряда "как разослать уведомление о посте в ленте Канье Уэста всем его подписчикам, которых десятки миллионов".


Конечно, обычный разработчик не сможет фактически написать всю систему с нуля за адекватное время (да и не нужно это), но пройтись по всей архитектуре, определить узкие места и trade-offs, и рассказать в итоге о том, что знаете вы — это обязательно. И этого может оказаться достаточно.

В том-то и дело, что я интересовался архитектурой сервисов, которыми я пользуюсь, о которых у меня возникала мысль "а как они с такими нагрузками справляются, если у меня тысяча уведомлений больше минуты рассылается". Фейсбук (или ВК) — я хотя бы имею (или имел) представлении об юзкейсах и порядке аудитории, что те же уведомления там есть в принципе. Твитер и Инстаграмм для меня какие-то нишевые сервисы, которые чуть ли не генерацией статических файлов можно сделать: публикует кто-то пост или фотку — генерируем страницу его поста/фотки и перегенерируем страницу его ленты. Даже база нужна постольку поскольку для этой функцинальности. Но вот от вас узнал и задумался, что наверное какие-то уведомления там таки есть и раз есть подписчики, то наверное у них есть сводка изменений в лентах у тех, на кого подписаны и, желательно, не просто email слать, а в онлайн режиме автоматически и полуавтоматически перезагружать основной экран или типа того

В Твитере, как минимум, есть не одна лента, а миллионы — и какой-никакой, но real-time в обновлении. Ведь если я подписан на вас, то ваш твит должен и в вашей ленте, и в моей, и у остальных подписчиков.


Вот, например, неплохое видео: https://www.youtube.com/watch?v=J5auCY4ajK8

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


Спасибо, посмотрю перед сном.

Читаешь и жалеешь, что плохо знаешь анлийский.
Учите анлгийский — не прогадаете. А еще за одно — китайский.
Ну и автомат калашникова — на всякий пожарный случай.

Все мы когда-то плохо знали английский, герой статьи (я) — не исключение.
Но это дело наживное :-) Главное, чтобы был стимул. Удачи!

И всё-таки главный вопрос для сотрудника FAANG. В повседневной работе сортировки и алгоритмы на графах с нуля часто пишете?

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

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

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


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

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

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


Другое дело, что многие, по моим наблюдениям, прям фигачат — и я думаю, это из-за системы мотивации и ревью, склоняющей к этому.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий