FAANG Master

Description
Пишу просто о сложном в IT. Разбираю многопоточность в Java, алгоритмы и алгоритмические задачи, system design. У меня 17 лет опыта в программировании, из них 7 в FAANG (Facebook, Amazon).
Мой youtube канал: https://www.youtube.com/@FAANGMaster
Advertising
We recommend to visit

Бизнес блог #1
Выжимаю книги до самой сути.

? Реклама - @jaMasha

? Хотите свою книгу? Мы напишем её за вас и сделаем книгу бестселлером. Подробности в боте @Summary_library_bot

? Оставьте след в истории с помощью книги
https://expert-book.pro

Фильмы и сериалы со всей планеты. Мы знаем, что посмотреть, где посмотреть и на что сходить в кино.

Last updated 2 months, 3 weeks ago

Все материалы размещены по партнёрской програме ivi.ru | All materials are posted on the partner program ivi.ru

По всем вопросам: @kuzr103
Купить рекламу: https://telega.in/c/k1noxa103
Основной канал: https://t.me/kino_hd2

Last updated 21 hours ago

2 months, 2 weeks ago

Что сейчас с хайрингом в FAANG?

С момента наибольшего падения в конце 2022 и начале 2023, число вакансий выросло примерно на треть. Но оно не идет вверх, а зафиксировалось в одном положении (https://www.trueup.io/job-trend).

Facebook сейчас хайрит достаточно хорошо. Число сотрудников практически вернулось до состояния перед сокращениями. Только с начала года я провел более 40 собеседований.
Судя по Linkedin вот такое, примерно, число открытых вакансий в основные Big Tech компании (через / указал число вакансий с тайтлом Software Engineer):

Facebook: 2829/761
Google: 4427/1313
Apple: 0/0
Amazon: 31696/5446
Microsoft: 3854/1245
Netflix: 446/112
Uber: 949/290

Всего: 44201/9167

Текущие стартовые оферы в США для junior/middle/senior:

Facebook: $145k/$234k/$353k
Google: $149k/$222k/$306k
Amazon: $140k/$220k/$337k
Microsoft: $133k/$159k/$203k
Uber: $135k/$248k/$408k
Apple: $119k/$176k/$268k
Netflix: $173k/$263k/$442k

В Европе эти числа в 1.5-2 раза ниже, в зависимости от локации. Для Лондона это примерно в 1.5 раза.
Моя зп в этом году в Лондоне по текущим ценам на стоки: £509k/$663k

По итогу, рынок не на пике, но из ямы вылез.

2 months, 2 weeks ago

Советы по написанию резюме для FAANG, и не только

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

При самостоятельной подаче, ваше резюме будет парсить и смотреть автоматическая система, поэтому резюме нужно оптимизировать как под человека, так и под автоматическую систему. На что стоит обратить внимание при написании резюме?

1) Оно должно легко парситься. Желательно делать очень простую и понятную структуру. Не надо всякие сайд бары, фотографии, ворд-арты и т.д. ФИО, контактная информация, саммари, скилы, Job History, Education.
2) Делайте его коротким. 1-2 страницы достаточно. Если у вас меньше 10 лет опыта, не надо писать 2-3 страницы ваших хобби, пет проектов, похвальных листов от бабушки и т.д. Сделайте 1 страничку. Люди не будут долго вчитываться в ваше резюме. Это секунды или пара минут на просмотр. Обратят внимание на ключевые слова: список работодателей и должностей и название универа и специальность.
3) Список работодателей, должностей, название универа, специальность и степень (бакалавр, магистр) должны легко и за несколько секунд считываться при беглом просмотре. Это, вообще, ключевые параметры, которые влияют на выбор вашего резюме. Эта информация должна легко считываться.
4) Делайте упор на последние ~5 лет. Если вы учились в универе 15 лет назад, то просто укажите название, степень, специальность и годы. Не надо расписывать детали. Если вы только закончили универ, то можно уделить этому больше текста, описать темы дипломов, проекты, достижения, если они релевантны вакансии. Если у вас 20 лет опыта, более детально опишите достижения за последние лет 5, остальное очень коротко.
5) Пишите результаты и достижения, а не обязанности. При описании Job History, пишите название компании, должность, команду или отдел и ключевые достижения, релевантные вакансии. Сделал то-то с таким-то импактом. Если вы аплаитесь на Senior, то должны быть проекты, которые вы бы лидили и были ваши контрибьюшены в роудмап, планирование и менторинг. Если на Staff, как вы лидили команду из 8-10 человек, драйвили роудмап, лидили проекты с крос тим или крос орг импактом. Не пишите текст, вроде работал работу, писал код, ходил на митинги. Это очевидно и занимает место в резюме. Нужно писать ваши результаты и чтобы эти результаты соответствовали требованиям вакансии.
6) Не пишите нерелевантные хобби, без существенных достижений. Не надо писать, что вы любите музыку, путешествия и вкусно покушать. Какой у вас любимый цветок и кто вы по знаку зодиака. Но если у вас есть существенные достижения, хоть они и нерелевантные, то указать их стоит. Например, вы участвовали в олимпиаде(по ~~брейкдансу~~, по бегу), пробежали марафон, поднялись на эверест, стали гроссмейстером по шахматам. Хоть это все не релевантно, это будет говорить про вашу одаренность и способность к наивысшим достижениям. Релевантные хобби я бы писал, только при существенных результатах. Писать, что-то типа, люблю программировать или читать книги по программированию в свободное время, смысла нет. А вот если вы достигли результатов на всемирно известных хакатонах, конкурсах проектов, олимпиадном программировании, написали книгу, выступали на конференциях, контрибьютили в open source и т.д. То это указать имеет смысл.
7) Сделайте ваше основное резюме, и кастомизируйте его под вакансию. Для каждой вакансии, сделайте копию вашего резюме и немного доработайте его под вакансию. Пройдитесь по требованиям вакансии и убедитесь, что у вас на все/большинство пунктов есть что-то в резюме: в достижениях в рамках работы, в скилах, в образовании и т.д.
8) Имейте профиль на linkedin и держите его актуальным. В России это не нужно, но если вы хотите работать в зарубежных компаниях, то это обязательно. Также укажите его в контактных данных в резюме. Есть шанс, что вам сам на linkedin напишет рекрутер из FAANG, если его заинтересует ваш профиль или у вас много контактов из FAANG.

2 months, 3 weeks ago

Как проходили массовые сокращения(layoffs) в Facebook? Часть 3.

Предыдущие части:
Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
Как проходили массовые сокращения(layoffs) в Facebook? Часть 2.

И в завершении темы layoffs. После первой волны сокращений, акции компании пошли вверх. На следующем перфоманс ревью нам дали много акций, для компенсации падения стоимости акций до этого. Эти акции, в последствии, выросли в цене в 3 раза. На этом, казалось, что кризис пройден.

Но весной 2023 последовала новая волна массовых сокращений. В этот раз она шла в три этапа и было сильно больше информации, какие роли и отделы заденет. Но все же не было информации по конкретным людям вплоть до самого дня X. Сокращения разбили на три месяца. В начале сократили еще не инженерные позиции. Потом очень сильно порезали позиции Data Analyst, TPM/PM, Data Scientists. И наконец разработчиков. В Лондоне полностью закрыли команды, которые относятся к Instagram. Теперь они только в США. Из инженеров сильно порезали Junior и Middle разрабов, их осталось очень мало в компании. Кроме того, уволили всех кто был в bootcamp на позициях ниже Senior. По итогу, многие люди просидели в bootcamp, не присоединившись к команде в течении почти года и были уволены. Также порезали менеджеров. Начали делать иерархию компании более плоской. Чтобы было меньше уровней репортинга между разрабом и гендиром. Многие менеджеры перешли на позиции разработчиков. Хотя надо сказать, что это продлилось не долго. Через полгода снова начали образовываться новые уровни менеджеров и репортинг чейн снова вырос. По факту, уплощения компании не случилось. Из-за телодвижений с уплощением и обратно было много перетасовок команд и людей между ними.
Все это повлияло на чувство Job Security и на культуру в компании не в лучшую сторону. Когда заканчивалась очередная волна сокращений и тебя не увольняли, то было только чувство снятия напряжения, но мотивации и воодушевления это не добавляло. В будущем все эти злоключения щедро компенсировались ростом акций и люди заработали много денег. Но моральное состояние компании в эти годы уже сильно другое.

Я ко второй волне получил Global Talent визу, а еще через полгода - ВНЖ. Поэтому потенциальное увольнение было мне уже не так страшно.

Пишите, что вы думаете об этом. Проходили ли вы сокращения, как на вас это повлияло.

Telegram

FAANG Master

Как проходили массовые сокращения(layoffs) в Facebook? Часть 1. В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид.…

2 months, 3 weeks ago

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

2 months, 3 weeks ago

Как устроено System Design Interview в FAANG?

System Design Interview (SDI) встречается на все позиции программистов, кроме интернов. Для интернов есть только собеседования по алгоритмам. Для всех других позиций у вас будет хотя бы одно SDI.
Оно встречается только на full loop. На скрине будет только собеседование по алгоритмам и иногда будет еще поведенческая часть. На full loop у вас будет поведенческая часть, несколько собесов по алгоритмам и хотя бы одно по System Design.
Для примера, так выглядят собесы в Amazon и Facebook:

Amazon:
Screen - online assessment (онлайн тест на две алгоритмические задачи). Если все ок - full loop, если все плохо - reject, если что-то между могут назначить собеседование с человеком на такие же алгосы.
Full Loop: 3 coding + LP собеседования (три собеседования по 45 минут. На каждом одна задача на алгосы и поведенческая часть на Amazon Leadership Principles). И одно на System Design + LP.

Facebook:
Screen - 45-минутное собеседование по алгосам с человеком на 2 задачи.
Full Loop: 2 собеседования по алгосам, такие же как и Screen, 1 поведенческое, 1 по System Design.

Для уровня Staff Software Engineer будет 2 собеседования по System Design.

Для Junior уровня SDI немного отличается. Оно проще. Вас могут попросить сделать ООП дизайн классов для какой-то задачи.
Для уровней начиная с Middle вас попросят задизайнить какую-нибудь широко известную систему вроде месенджера, новостную ленту, систему бронирования билетов и т.д.
На содержательную часть собеседования у вас будет минут 40.
Т.к. вопрос очень общий, то на него нет одного правильного ответа. А в силу ограниченного времени, вам надо четко установить scope задачи.

Поэтому само собеседования я бы разделил на 6 основных этапов:
1) Получение задачи. Если вас попросили задизайнить какую-то систему, а вы вообще не в курсе, что это такое, то это нужно уточнить сразу. Но обычно, вы будете знакомы с тем, что вас попросят сделать. Вроде задизайнить youtube и т.д. Но если вы не уверены, что это такое, то лучше выяснить сразу.
2) Уточняем и формулируем функциональные требования. Обычно, у системы, которую вас просят задизайнить огромное число функций. Но из-за ограниченного времени, вам скорее всего нужно задизайнить 1-3 ключевые функции. Какие именно, нужно уточнить у интервьюера, если это не было понятно на этапе получения задачи. Даже если вы это поняли, то стоит сформулировать эти требования явным образом, что нам надо поддержать ту или иную функциональность.
3) Уточняем, делаем асампшены по поводу нефункциональных требований. Делаем оценку требуемых ресурсов. Сделайте предположение и согласуйте это с интервьюером по числу пользователей, дневной активности и т.д. На основе этих данных сделайте оценку требуемых ресурсов: число серверов, дискового пространства, требования к пропускной способности сети и т.д. Это нужно сделать, чтобы понимать масштаб компонент. Т.к. соц сеть на 100 пользователей и 3 миллиарда - это два разных приложения.
4) Делаем high-level design. Рисуем диаграмму в виде квадратов, соединенных стрелочками с основными компонентами. Поясняем зачем и почему нам нужна та или иная компонента. Проходим по дизайну и проверяем, что он покрывает все требования.
5) Обсуждаем trade-offs. У каждого подхода есть свои плюсы и минусы. Если вам в голову приходят разные варианты дизайна, реализации тех или иных компонент или использования тех или иных технологий (SQL vs. NoSQL, RPC vs REST vs GraphQL vs Websocket, In-Memory Cache vs NoSQL) то обсудите эти варианты и какие плюсы и минусы у этих подходов и почему вы в итоге выбрали то, что выбрали.
6) Делаем детальный дизайн. В рамках обсуждения с интервьюером, вас могут попросить раскрыть более детально ту или иную часть дизайна. Как вы будете партиционировать данные, какие у вас будут таблицы в базе, как у вас будет распределятся нагрузка, как будет работать система при отказе той или иной компоненты. Проверьте, что ваш дизайн удовлетворяет нефункциональным требованиям (обеспечивает масштабирование, fault tolerance, resilience и т.д.).

2 months, 3 weeks ago

Как проходили массовые сокращения(layoffs) в Facebook? Часть 2.

Предыдущая часть: Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.

Немного добавлю к настроениям в тот день. В статье в WSJ был указан конкретное время, когда будет объявлено о сокращениях. Все сидели и ждали указанное время. Боялись любой нотификации, любого нового сообщения или письма. При каждом уведомлении вздрагивали. В указанное время выходит пост от Марка Цукерберга про увольнения и начинается рассылка писем счастья. Затронуло ли вас это сокращение или нет. Тех кого затронуло - они лишались мгновенно доступа почти ко всем внутренним системам. Было чувство что тебя поставили у стенки и ты только ждешь выстрела...

Компенсации и что было с теми, кого это затронуло.

После того, как было объявлено о сокращениях, было несколько Q&A, в том числе с Марком, про то, что и почему происходит и что будет дальше. Всем уволенным дали большие компенсационные пакеты: 16 недель зп (4 месяца) + по 2 недели за каждый отработанный год. При этом вестинг акций, который должен быть через несколько дней остается в силе (акции будут выплачены). Также мед. страховка на всю семью продолжит действовать еще 6 месяцев. Также предоставляли консультации по визам и некоторую помощь в поиске работы. Но если честно, то это просто консультации, без практической пользы.
Тех кого уволили в Европейских офисах - официально они еще числились в компании долгое время, но не работали. В Европе нельзя уволить одним днем. Там начался так называемый период консультаций. Это дало еще пару месяцев на поиск работы и с определением с планами. Некоторые даже смогли остаться в компании в результате этих консультаций, но это были единицы.

Кого затронула первая волна сокращений?

Руководство старалось по максимуму оставить инженеров. Они сильно урезали раздутый за время ковида отдел по рекрутингу, найму и онбордингу. Т.к. все наполеоновские планы по найму были уже не актуальны. В результате на рынке труда оказалось гигантское число рекрутеров. Инженеров тоже подрезали. Но не равномерно. Приоритетные направления сокращали меньше, второстепенные сильнее. Перфоманс сотрудника, его опыт и число лет в компании не сильно учитывался. Поэтому я видел как увольняли буквально суперзвезд программирования, а оставляли средних или посредственных, если они были в приоритетных по мнению компании отделах.

Как первая волна сокращений повлияла на меня?

Я пережил сильный стресс. Я осознал, насколько шатко мое положение, особенно, зависимость моей визы от работодателя. Я осознал, что работодатель уволит вас даже не моргнув глазом, если под угрозой прибыль компании или стоимость акций. Нет незаменимых людей. Если в FAANG работает топ 1% программистов, а я видел как увольняли топ 1% из этих топ 1%. Поэтому все эти разговоры про корпоративную культуру и т.д. это просто ниочем. Что вы должны преследовать свои собственные цели, а не цели компании. Компания избавится от вас при минимальных трудностях.
После этого я ускорил получение другого типа визы - Global Talent. Это отвязывает вас от работодателя и вы можете жить в стране даже без работы.

Продолжение следует.

Telegram

FAANG Master

Как проходили массовые сокращения(layoffs) в Facebook? Часть 1. В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид.…

5 months, 1 week ago

В чем преимущество получения части компенсации в виде акций публичных компаний?

В FAANG компаниях, и во многих других Big Tech компаниях (Microsoft, Lyft, Uber, Two Sigma, Jane Street, Citadel), существенная часть вашей компенсации выдается вам в виде акций этой компании. Эти акции будут приходить вам на брокерский счет и они полностью ликвидны. Вы одним нажатием можете их продать по текущей рыночной цене и превратить их к кэш. А основное преимущество в том, что они имеют тенденцию к росту.
Давайте рассмотрим на реальном оффере в одну из FAANG компаний и посмотрим, как будет меняться компенсация, даже если человек не промоутится и работает средне для своего уровня.

Это офер на Senior позицию в FAANG в Лондон в 2020 году:

1) Базовая зп - £100k в год
2) 15% - годовой бонус
3) Акции в сумме $360k на 4 года по текущей цене в $280 за акцию. Акции будут выплачиваться равными порциями, раз в 3 месяца. Но акции будут вам выдаваться в штуках, а не в долларах. Поэтому это означает, что вам дадут 1285 акций на 4 года, которые будут приходить равными порциями раз в 3 месяца. Или 80 акций раз в 3 месяца, сколько бы они не стоили в данный момент.

Давайте посчитаем ожидаемый доход в первый год, если цена акций не изменится:
TC (Total Compensation) = £100k + £100k * 15% + 80 * 4 * $280 = £185k или $236k в год.

Теперь, скажем, он проработал 3 года в компании, не промоутился. Зп ему подняли на 20% за 3 года для компенсации инфляции. Но при этом цена акций увеличилась с $280 до $490 за акцию. Давайте рассчитаем, сколько он будет зарабатывать, если ему не давали новых акций за хороший перфоманс (рефрешеры), а только то, что было в начальном оффере.

Тогда он будет зарабатывать:
TC (Total Compensation) = £120k + £120k * 15% + 80 * 4 * $490 = £261k или $332k в год.
Т.е. просто из-за роста акций, со средним перфомансом, без учета рефрешеров (а они обычно всегда даются, даже при среднем перфомансе), его компенсация выросла на 40%.

5 months, 1 week ago

Заменят ли программистов нейросети в ближайшем будущем? Update

Прошлый подобный пост я писал 6 месяцев назад, спустя год после выхода нашумевшего ChatGPT 3: Часть 1, Часть 2.

Есть ли какие-то изменения, которые повлияли на мою оценку? Какие мои текущие соображения по этому поводу?

Начну со своего личного опыта использования и реального влияния нейросетей на меня и мою работу:

1) Хайп и холивары. Хайп, по прежнему, вокруг этой темы большой. Все вокруг об этом говорят, как на работе, так и в обычной жизни. Снимается тонна видео и пишется тонна статей. Часто, при обсуждении возникает два противоположных лагеря и начинаются споры с пеной у рта. Google Trends по прежнему показывает некоторый рост популярности темы, но темп роста популярности темы замедлился. За полгода он вырос на 15%.
2) Легче стало читерить на собеседовании. Т.к. все еще много компаний проводят собеседования или полностью или частично онлайн, то с использованием ChatGPT и подобным им моделям, стало проще найти правильный и оптимальный ответ или решение задачи с собеседования. Раньше читерить тоже было возможно, но нужно было параллельно гуглить, смотреть разные сайты, на которых поиск мог быть базовым и не всегда удавалось найти быстро правильный ответ. С использованием ChatGPT, можно все спрашивать в одном окне чата и быстро получать правильные ответы на простые вопросы с собеседования, для которых не нужен большой контекст. Но в большинстве случаев читерство распознается и наказывается. Т.к. кандидат хоть и говорит правильный ответ, но он не может его пояснить или путается в тривиальных уточняющих вопросах. Смотри случаи с собеседований: Случай 1, Случай 2. Специальная галочка, про подозрения.
3) Появились ChatGPT подобные и другие тулы на основе LLM. В компании появилось много тулов на основе LLM. Как то, обычные, чат подобные, решения, так и встроенные в среду разработки и другие тулы. Тулы более кастомизированные под работу внутри компании, т.к. обученные на внутренней документации и внутреннем коде по типу Copilot. Но к их юзабельности и полезности есть вопросы. Чат подобные тулы помогают немного поправить мой кривой письменный английский. Но только при уже написанной фразе. Просить сгенерировать с нуля какой-то текст плохая идея. Текст будет написан в другой стилистике и с другим смыслом, хотя и похожим на то, что нужно. А спрашивать что-то - не лучше, чем обычный поиск. Т.к. документация в IT компаниях всегда хромает и обучение на ней не сильно прибавляет юзабилити. Тулы типа Coopilot иногда угадывают простые функции, которые хочешь написать. Вроде всяких утилитарных вещей. Что и так не заняло бы много времени или можно было бы найти на stackoverflow или внутренних ресурсах. Но это иногда добавляет немного юзабилити, что не надо много времени тратить на тупой код. Но не более того. Все остальные варианты использования провалились. Мне не понравилось качество результата или просто бесполезные для меня функции.

За полгода вышло множество новых версий и фич на LLM: ChatGPT-4o, meta.ai, google внедрил LLM во все свои продукты. Но пока, кроме wow эффекта они для меня ничего не производят. Типа выглядит круто, но буду ли я это все использовать - сомнительно. Или буду, но какого-то импакта, что это хоть кого-то заменит не видно.

За полгода я не заметил какого-то существенно приближения момента замены программистов.

5 months, 2 weeks ago

6) Getting things done. Junior, обычно, делает микрошаги, которые ему говорят и не овнит полностью задачу. Мидл же драйвит решение задачи и имеет послужной список из решеных на хорошем уровне, в разумные сроки, среднего размера для команды задач.

Это мои мысли на эту тему, пишите, что вы об этом думаете.

We recommend to visit

Бизнес блог #1
Выжимаю книги до самой сути.

? Реклама - @jaMasha

? Хотите свою книгу? Мы напишем её за вас и сделаем книгу бестселлером. Подробности в боте @Summary_library_bot

? Оставьте след в истории с помощью книги
https://expert-book.pro

Фильмы и сериалы со всей планеты. Мы знаем, что посмотреть, где посмотреть и на что сходить в кино.

Last updated 2 months, 3 weeks ago

Все материалы размещены по партнёрской програме ivi.ru | All materials are posted on the partner program ivi.ru

По всем вопросам: @kuzr103
Купить рекламу: https://telega.in/c/k1noxa103
Основной канал: https://t.me/kino_hd2

Last updated 21 hours ago