FAANG Master
Open in Telegram
Cтатьи https://dev.to/faangmaster Youtube: https://www.youtube.com/@faangmaster Patreon: https://www.patreon.com/c/FAANGMaster Boosty: https://boosty.to/faangmaster
Show more2 955
Subscribers
-224 hours
+47 days
+4430 days
Posts Archive
2 955
Текущие стартовые оферы для Staff программистов в FAANG/BigTech
Текущие оферы для Staff Software Engineer (~уровень тех лида, обычно 10+ лет опыта):
1) OpenAI: $1.2M/96.8 миллионов рублей в год.
2) Facebook: $804k/64.8 миллионов рублей в год.
3) Two Sigma: $800k/64.5 миллионов рублей в год.
4) Uber: $631k/50.9 миллионов рублей в год.
5) Airbnb: $593k/47.8 миллиона рублей в год.
6) Google: $569k/45.9 миллионов рублей в год.
7) Robinhood: $558k/45 миллионов рублей в год.
8) Hudson River Trading: $531k/42.8 миллиона рублей в год.
9) Apple: $481k/38.8 миллионов рублей в год.
10) Lyft: $472k/38 миллиона рублей в год.
11) Microsoft: $407k/32.8 миллиона рублей в год.
12) Amazon: $390k/31.4 миллионов рублей в год.
Оферы стартовые в США. В Швейцарии оферы примерно такие же как в США. В Европе и Великобритании в 1.5-2 раза меньше.
Смотри также:
1) Как подготовиться к собеседованию в FAANG/Big Tech
2) Текущие стартовые оферы для Junior программистов в FAANG/BigTech
2 955
Задача с System Design Interview: Design Google Docs
Разобрал задачу с System Design Interview: Design Google Docs и выложил на свой youtube-канал: https://youtu.be/Bas7i0dV_cY?si=kdtp1GhbhTQqntRa
2 955
В Москве прошла презентация первого российского антропоморфного робота с искусственным интеллектом Aidol.
2 955
Текущие стартовые оферы для Junior программистов в FAANG/BigTech
Текущие оферы для fresh graduate (выпускников без опыта):
1) Hudson River Trading: $395k/32 миллиона рублей в год.
2) Two Sigma: $249k/20.1 миллионов рублей в год.
3) OpenAI: $242k/19.5 миллионов рублей в год.
4) Robinhood: $201k/16.2 миллионов рублей в год.
5) The Trade Desk: $192k/15.5 миллионов рублей в год.
6) Uber: $188k/15.2 миллионов рублей в год.
7) Lyft: $186k/15 миллионов рублей в год.
8) Airbnb: $184k/14.8 миллионов рублей в год.
9) Google: $182k/14.7 миллионов рублей в год.
10) Amazon: $181k/14.6 миллионов рублей в год.
11) Facebook: $172k/13.9 миллионов рублей в год.
12) Apple: $171k/13.8 миллионов рублей в год.
13) Microsoft: $162k/13.1 миллионов рублей в год.
Оферы стартовые в США. В Швейцарии оферы примерно такие же как в США. В Европе и Великобритании в 1.5-2 раза меньше.
Несмотря на то, что в некоторые компании стартовые оферы меньше, но из-за рефрешеров (Facebook и Google) компенсация может очень быстро вырасти в разы.
В компаниях, вроде Hudson River Trading или Two Sigma платят кэшем. Поэтому на одном и том же уровне зп не сильно будет меняться.
Типичный возраст людей на этой позиции - 22-24 года.
Кому имеет смысл аплаится на Junior позицию в такие компании?
Выпускникам хороших/топовых вузов + прошедших стажировку в хорошей топовой компании. Это не обязательно вузы и компании из США или Европы, это могут быть топовые вузы и компании вашей страны.
Если вы еще студент, то имеет смысл подаваться на стажировку. Стажировки есть на 3 и 6 месяцев. У меня были интерны, в том числе из стран СНГ(много из Казахстана почему-то), и в Амазоне и в Facebook'е.
Если вы не заканчивали топовый вуз, то имеет смысл сначала получить опыт в других компаниях(лучше около топовых) вашей страны и подаваться уже имея опыт на более высокие позиции - Middle+ (E4+/L4+).
Смотри также:
1) Почему сотрудники Google и Meta получают на порядок больше, чем в Amazon?
2) В чем преимущество получения части компенсации в виде акций публичных компаний?
3) Сколько денег заработает средний Senior разработчик в Meta за 4 года в Лондоне?
4) Обновление рейтинга по стартовым оферам
5) Рейтинг топ компаний по отзывам сотрудников, без учета компенсаций
6) Диаграмма компаний
2 955
Yann LeCun уходит из Meta
Yann LeCun - это крестный отец Deep Learning. Лаурет премии Тьюринга, Chief AI Scientists в Мета.
Он уходит из Мета и планируюет создать свой стартап.
Думаю связано в последними изменениями в стратегии Мета по AI(создании MSL и TBD), покупка Scale AI, найм людей за сотни миллионов и миллиарды с 3 годами опыта, задвиганием его на второстепенные роли и не вера в LLM вцелом.
Смотри также:
2 955
Сайт для бронирования мок-собеседований и вебинаров
Сделал отдельный сайт для бронирования мок-собеседований со мной и для участия в вебинарах.
В течении этой и следующей недели проведу максимум 10 мок-собеседований. Преимущественно по алгоритмам. Но если вы хотите мок собеседование по System Design, Java или многопоточности в Java, то напишите об этом при бронировании.
Также планируется 4 тестовых вебинара по алгоритмам и System Design. Если за день до вебинара на каждом вебинаре будет забронировано меньше 3 человек, то я вебинар отменю и сделаю возврат средств.
Время вебинаров: суббота и воскресенье в 10 утра по Лондону (13 по Москве). Длительность - 1.5-2.5 часа в зависимости от числа вопросов.
Дата, время, место и тема вебинаров:
1) 15 ноября 2025, 10 утра по Лондону, 13 по Москве. System Design Interview. Урок 3. Основные концепции, часть 1. Consistent Hashing, CAP Theorem, Data Partitioning, Replication, Master-Slave, Quorum.
2) 16 ноября 2025, 10 утра по Лондону, 13 по Москве. Coding Interview. Tree Traversal, Binary Tree, BST.
3) 22 ноября 2025, 10 утра по Лондону, 13 по Москве. System Design Interview. Урок 4. Основные концепции, часть 2. RPC, REST, Websockets, Long-Polling, Server-Sent Events. Proxies, Bloom Filter, Heartbeat, Checksum.
4) 23 ноября 2025, 10 утра по Лондону, 13 по Москве. Coding Interview. Prefix/Suffix Tree, Trie.
Сайт: https://www.faangmaster.com/
2 955
Записи уроков выкладывать не буду, т.к. подписчики этого канала занимаются перепродажей моих уроков. Одного такого забанил.
2 955
Интервью с James Gosling
Это создатель языка Java.
Во время, когда я работал в Амазоне, он тоже работал в Амазоне на позиции Distinguished программиста. Текущие оферы на позицию Distinguished программистов в Амазор - $1.6M в год.
Его линкедин: James Gosling
Интервью: https://youtu.be/IT__Nrr3PNI
2 955
+2
Это главы Nvidia, Samsung и Hundai встретились для обсуждения возможной коллаборации. Встречались в обычном кафе/фастфуде с пивом и крылышками.
2 955
Вебинары по System Design и Алгоритмам и Mock-Interview
16 и 23 ноября будут тестовые вебинары по решению алгоритмических задач.
15 и 22 ноября будут тестовые вебинары по System Design.
Ниже будут посты с голосование по темам вебинаров.
Также в течении следующих двух недель проведу 10 мок собеседований по алгоритмам. Как забронировать будет отдельным постом.
2 955
Вебинары по System Design и Алгоритмам и Mock-Interview
16 и 23 ноября будут тестовые вебинары по решению алгоритмических задач.
15 и 22 ноября будут тестовые вебинары по System Design.
2 955
16 и 23 ноября проведу тестовые вебинары по решению алгоритмических задач.
Буду разбирать как идентифицировать задачу на определенный паттерн/тему/тип и как их решать. Буду разбирать подход, алгоритм и примеры задач. Выбирайте темы
2 955
Atomicity and Visibility
Вопросы: https://t.me/faangmaster/1069 являются проверкой на понимание таких понятий, как атомарность (atomicity) и видимость (visibility), которые используются в многопоточности.
Атомарность.
Атомарная операция, это операция, которая выполняется полностью или не выполняется вовсе, без промежуточных состояний, видимых другим потокам. При этом атомарность не гарантирует visibility (видимость). После атомарной операции другие потоки могут прочитать устаревшее значение, из кэшей и регистров процессора или из-за переупорядочивания операций при исполнении кода.
Visibility.
Visibility это гарантия, что изменения, сделанные одним потоком, станут наблюдаемы другим. Без специальных гарантий поток может видеть устаревшие значения из кэша/регистров или из-за переупорядочивания операций. Visibility гарантируют отношения happens-before из Java Memory Model.
Давайте посмотрим на конкретные примеры.
1) Есть статическая переменная static int val;
она записывается и читается в двух потоках.
Например,
Поток1:
...
val = 11111111;
....
System.out.println(val);
Поток2:
...
val = 99999999;
....
System.out.println(val);
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить? Какие значения могут быть напечатаны на экран?
Ответы Запись 32-битной переменной (например int) является атомарной операцией. Поэтому потоки могут видеть только три возможных значения: 0 (начальное), 11111111 или 99999999. Но атомарность не гарантирует видимость (visibility). Поэтому если переменная пишется и читается в двух потоках, ее следует сделать видимой. Иначе потоки могут видеть устаревшие значения. Чтобы переменную сделать видимой, можно использовать ключевое слово - volatile. Т.е. можно добавить в объявление переменной: static volatile int val. Есть и другие способы добиться видимости, например, добавить synchronized блоки для записи и для чтения переменной. Они тоже будут гарантировать visibility в соответствии с happens-before отношениями из JMM.
2) Есть статическая переменная static long val;
она записывается и читается в двух потоках.
Например,
Поток1:
...
val = 1111111111111111L;
....
System.out.println(val);
Поток2:
...
val = 9999999999999999L;
....
System.out.println(val);
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить? Какие значения могут быть напечатаны на экран?
Ответы. Этот пример отличается от первого только тем, что тут переменная 64-битная. Спецификация Java допускает, что 64-битные операции могут быть не атомарными. Т.е. запись переменной может состоять из двух операций: запись старших 8 байт и младших 8 байт. При этом промежуточные состояния могут стать видимыми для других потоков. Т.е. потоки могут видеть не только три возможных значения переменной, но и другие комбинации промежуточных состояний. Например, когда первый поток запишет младшие 8 байт, а второй поток 8 старших байт, будет какая-то смесь из двух чисел в одной переменной. На современных JVM и современных операционных системах атомарность будет соблюдаться и для 64-битных операций. Но по спецификации это не гарантированно. Поэтому тут не соблюдается ни атомарность, ни видимость. Добавление volatile в данном случае будет гарантировать не только видимость, но и атомарность: static volatile long val;
3) Есть статическая переменная static int val;
В двух потоках делают инкремент переменной val:
val++;
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить?
Ответы. Инкремент не является атомарной операцией. Поэтому потоки будут видеть промежуточные значения и некоторые инкременты будут утеряны. Например, оба потока могут прочитать значение 0, увеличить до 1 и записать оба 1. При этом по факту было две операции инкремента, просто в разных потоках, а значение стало 1, а не 2. Добавление volatile не сделает операцию атомарной. В общем случае volatile будет гарантировать только видимость, но не атомарность. Для исправления можно использовать AtomicInteger val или synchronized блоки.
java AtomicInteger val = new AtomicInteger(); .... val.incrementAndGet(); .... val.get();
2 955
Несколько простых вопросов с собеседования по Java
1) Есть статическая переменная static int val;
она записывается и читается в двух потоках.
Например,
Поток1:
...
val = 11111111;
....
System.out.println(val);
Поток2:
...
val = 99999999;
....
System.out.println(val);
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить? Какие значения могут быть напечатаны на экран?
2) Есть статическая переменная static long val;
она записывается и читается в двух потоках.
Например,
Поток1:
...
val = 1111111111111111L;
....
System.out.println(val);
Поток2:
...
val = 9999999999999999L;
....
System.out.println(val);
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить? Какие значения могут быть напечатаны на экран?
3) Есть статическая переменная static int val;
В двух потоках делают инкремент переменной val:
val++;
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить?2 955
Какие технологии использует Facebook?
Я уже писал тут, что в FAANG-компаниях очень много внутренних тулов и технологий, разработанных внутри компании. Часть из них становятся открытыми, часть нет.
Пройдусь по основному стеку, который используется в Facebook:
1) Frontend: ReactJS. Разработан внутри компании, был изначально внутренней технологией, после стал open-source. Очень популярный.
2) Frontend <-> Backend Communication: GraphQL. Изначально был внутренней технологией, потом стал open-source. Достаточно популярный.
3) Backend: hacklang. Разработан внутри компании для замены php. Имеет собственную виртуальную машину hhvm. Похож на Java и другие языки.
4) ORM: Ent Framework. Для работы с базой через кэш, разработали свой ORM-framework. Чисто внутренний, не открытый.
5) Кэш: TAO. Внутренний, закрытый. Обрабатывает миллиарды запросов к базе данных в секунду. Сделан поверх Memcached.
6) Реляционная база: MySQL + своя кастомизация для партиционирования/шардирования, работы в распределенной среде. Внутренняя, закрытая.
7) Логирование аналитических данных: Свой фреймворк для логирования, который пишет в собственный аналог Kafka, который называется - Scribe. Данные из Scribe после попадают в Scuba и/или Hive для хранения, анализа и могут скармливаться другим компонентам, в том числе Machine Learning моделям.
8) Streams: Scribe. Упомянул в предыдущем пункте, так как часто используется для логирования BigData для анализа и ML. Это внутренний аналог Kafka.
9) Data Warehouse: Hive. Изначально был разработан внутри компании, сейчас open-source. Туда стекаются гигантские объемы данных для анализа, ML, использование другими компонентами и т.д.
10) Key-value DB: RocksDB. Изначально разработанная внутри компании, сейчас open-source. Типичный use-case - данные из Hive проиндексировать и хранить в RocksDB для быстрого доступа. Т.к. запросы по Hive работают очень долго.
12) SQL Engine: Presto. Изначально разработан внутри компании, сейчас open-source.
13) Мониторинг: весь внутренний, закрытый. Метрики, логи - все внутреннее. Как по мне, хуже, чем в Amazon.
14) ML Training: FBLearner. Внутренний.
15) RPC: Thrift. Разработан внутри, сейчас open-source.
16) ML: Pytorch. Разработан внутри, сейчас open-source.
17) Blob Storage: внутренний, закрытый. Используется для хранения видео и картинок.
В Мета куча других внутренних тулов и технологий: для дашбордов, ML, отладки запросов, код ревью, ETL. Большинство круче, чем все что я видел в открытом доступе.
Вообщем, в Мета не просто сайт делает, но и куча инфраструктуры, часть из которой становится хорошими open-source технологиями.
Смотри также:
1) Некоторые подходы к архитектуре приложений в Amazon
2) Какие AWS сервисы мы часто использовали, когда я работал в Amazon?
3) Какие базы данных используются в FAANG?
2 955
Какие технологии использует Facebook?
Я уже писал тут, что в FAANG-компаниях очень много внутренних тулов и технологий, разработанных внутри компании. Часть из них становятся открытыми, часть нет.
Пройдусь по основному стеку, который используется в Facebook:
1) Frontend: ReactJS. Разработан внутри компании, был изначально внутренней технологией, после стал open-source. Очень популярный.
2) Frontend <-> Backend Communication: GraphQL. Изначально был внутренней технологией, потом стал open-source. Достаточно популярный.
3) Backend: hacklang. Разработан внутри компании для замены php. Имеет собственную виртуальную машину hhvm. Похож на Java и другие языки.
4) ORM: Ent Framework. Для работы с базой через кэш, разработали свой ORM-framework. Чисто внутренний, не открытый.
5) Кэш: TAO. Внутренний, закрытый. Обрабатывает миллиарды запросов к базе данных в секунду. Сделан поверх Memcached.
6) Реляционная база: MySQL + своя кастомизация для партиционирования/шардирования, работы в распределенной среде. Внутренняя, закрытая.
7) Логирование аналитических данных: Свой фреймворк для логирования, который пишет в собственный аналог Kafka, который называется - Scribe. Данные из Scribe после попадают в Scuba и/или Hive для хранения, анализа и могут скармливаться другим компонентам, в том числе Machine Learning моделям.
8) Streams: Scribe. Упомянул в предыдущем пункте, так как часто используется для логирования BigData для анализа и ML. Это внутренний аналог Kafka.
9) Data Warehouse: Hive. Изначально был разработан внутри компании, сейчас open-source. Туда стекаются гигантские объемы данных для анализа, ML, использование другими компонентами и т.д.
10) Key-value DB: RocksDB. Изначально разработанная внутри компании, сейчас open-source. Типичный use-case - данные из Hive проиндексировать и хранить в RocksDB для быстрого доступа. Т.к. запросы по Hive работают очень долго.
12) SQL Engine: Presto. Изначально разработан внутри компании, сейчас open-source.
13) Мониторинг: весь внутренний, закрытый. Метрики, логи - все внутреннее. Как по мне, хуже, чем в Amazon.
14) ML Training: FBLearner. Внутренний.
15) RPC: Thrift. Разработан внутри, сейчас open-source.
В Мета куча других внутренних тулов и технологий: для дашбордов, ML, отладки запросов, код ревью, ETL. Большинство круче, чем все что я видел в открытом доступе.
Вообщем, в Мета не просто сайт делает, но и куча инфраструктуры, часть из которой становится хорошими open-source технологиями.
Смотри также:
1) Некоторые подходы к архитектуре приложений в Amazon
2) Какие AWS сервисы мы часто использовали, когда я работал в Amazon?
3) Какие базы данных используются в FAANG?
2 955
Заполняю налоговую декларацию за 2024 год. За прошлый год заработал по p60 форме: £575k/$752k/61 миллион рублей до уплаты налогов.
После уплаты налогов: £575-£245k=£330k/$431k/35 миллионов рублей. Еще нужно заплатить дополнительно налог на рост капитала. Это налог на разницу стоимости акций на момент вестинга и продажи (на самом деле сложнее, там считается средняя цена акций в пуле).
