ar
Feedback
2 955
المشتركون
-224 ساعات
+47 أيام
+4430 أيام
أرشيف المشاركات
Текущие стартовые оферы для 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

Задача с System Design Interview: Design Google Docs Разобрал задачу с System Design Interview: Design Google Docs и выложил на свой youtube-канал: https://youtu.be/Bas7i0dV_cY?si=kdtp1GhbhTQqntRa

В Москве прошла презентация первого российского антропоморфного робота с искусственным интеллектом Aidol.

Текущие стартовые оферы для 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) Диаграмма компаний

Yann LeCun уходит из Meta Yann LeCun - это крестный отец Deep Learning. Лаурет премии Тьюринга, Chief AI Scientists в Мета. О
Yann LeCun уходит из Meta Yann LeCun - это крестный отец Deep Learning. Лаурет премии Тьюринга, Chief AI Scientists в Мета. Он уходит из Мета и планируюет создать свой стартап. Думаю связано в последними изменениями в стратегии Мета по AI(создании MSL и TBD), покупка Scale AI, найм людей за сотни миллионов и миллиарды с 3 годами опыта, задвиганием его на второстепенные роли и не вера в LLM вцелом. Смотри также:

Сайт для бронирования мок-собеседований и вебинаров Сделал отдельный сайт для бронирования мок-собеседований со мной и для участия в вебинарах. В течении этой и следующей недели проведу максимум 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/

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

Интервью с James Gosling Это создатель языка Java. Во время, когда я работал в Амазоне, он тоже работал в Амазоне на позиции Distinguished программиста. Текущие оферы на позицию Distinguished программистов в Амазор - $1.6M в год. Его линкедин: James Gosling Интервью: https://youtu.be/IT__Nrr3PNI

Это главы Nvidia, Samsung и Hundai встретились для обсуждения возможной коллаборации. Встречались в обычном кафе/фастфуде с п
+2
Это главы Nvidia, Samsung и Hundai встретились для обсуждения возможной коллаборации. Встречались в обычном кафе/фастфуде с пивом и крылышками.

photo content

Темы по System Design
Anonymous voting

Темы по Алгоритмам
Anonymous voting

Вебинары по System Design и Алгоритмам и Mock-Interview 16 и 23 ноября будут тестовые вебинары по решению алгоритмических задач. 15 и 22 ноября будут тестовые вебинары по System Design. Ниже будут посты с голосование по темам вебинаров. Также в течении следующих двух недель проведу 10 мок собеседований по алгоритмам. Как забронировать будет отдельным постом.

Вебинары по System Design и Алгоритмам и Mock-Interview 16 и 23 ноября будут тестовые вебинары по решению алгоритмических задач. 15 и 22 ноября будут тестовые вебинары по System Design.

16 и 23 ноября проведу тестовые вебинары по решению алгоритмических задач. Буду разбирать как идентифицировать задачу на определенный паттерн/тему/тип и как их решать. Буду разбирать подход, алгоритм и примеры задач. Выбирайте темы
Anonymous voting

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();

Несколько простых вопросов с собеседования по 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++;
Есть ли какие-то проблемы с этим кодом? Если есть, то какие? Как улучшить?

Какие технологии использует 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?

Какие технологии использует 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?

Заполняю налоговую декларацию за 2024 год. За прошлый год заработал по p60 форме: £575k/$752k/61 миллион рублей до уплаты нал
Заполняю налоговую декларацию за 2024 год. За прошлый год заработал по p60 форме: £575k/$752k/61 миллион рублей до уплаты налогов. После уплаты налогов: £575-£245k=£330k/$431k/35 миллионов рублей. Еще нужно заплатить дополнительно налог на рост капитала. Это налог на разницу стоимости акций на момент вестинга и продажи (на самом деле сложнее, там считается средняя цена акций в пуле).