Время Валеры
28.8K subscribers
189 photos
6 videos
1 file
397 links
Мне платят за то, что я говорю другим людям что им делать.
Автор книги https://www.manning.com/books/machine-learning-system-design
https://venheads.io
https://www.linkedin.com/in/venheads
Download Telegram
Прежде чем перейти к описанию инженерных уровней опишем из чего складывается Total Comp, что такое Перфоманс Ревью и как оно влияет на Total Comp
Total Comp складывается из трех компонент: Базовая зарплата + премия + RSU (у работников первого года еще есть бонус за подписание и бонус за релокацию)

Базовая зарплата это то, что сотрудник получает всегда и при любых условиях
Премия - это какой то процент от зарплаты за шесть месяцев, который выдается дополнительно по итогам ревью
RSU - это акции компании, которые выдаются на 4 года, с возможностью забирать 1/16 каждый квартал и делать с ними что захочется (продавать или держать) Период когда акции становятся твоими называется vesting, в момент наступления вестинга удерживается часть акций на оплату налогов, остальные переводятся на счет работника (Во многом поэтому мой последний день в ФБ был 15 ноября)
RSU складываются из начального гранта, который выдается при приеме на работу и refresher - пакета акций который выдается каждый год по результатам двух ревью. Кроме того VP может выдать additional equity

Раз в полгода проходит процедура перфоманс ревью, во время которой собирается calibration package каждого сотрудника и происходит калибровка, где по четырем осям оценивают инженеров одного уровня между собой и в итоге решают, кому какую оценку дать. Делается это коллективом из инженеров более высоких уровней, руководителей оцениваемых инженеров и их начальника, затем это идет на уровень выше и еще выше и выше, но не всегда. Очевидно что директорам и VP нет смысла калибровать E3, но есть смысл калибровать E6

Мне довелось участвовать в калибровках что в Яндексе, что в Фейсбуке
Итоговые оценки бывают следующие
Does not meet expectations - катастрофа, видел такое в Яндексе два раза, один из этих разов поспособствовал получению этой оценки(оценка А по шкале Яндекса на тот момент)
Meets some - очень плохо, премии и рефрешеров нет
Meets most - терпимо, 80% от базовой премии и рефрешеров
Meets all - хорошо, 100% от базовой премии и рефрешеров
Exceeds - очень хорошо, 125% от базовой премии и рефрешеров
Greatly Exceeds - отлично, 200% от базовой премии и рефрешеров
Redefines expectations - невероятно хорошо, 300% от базовой премии и рефрешеров - никогда не видел такое

Кроме того существует коэффициент перфоманса компании, который умножает все это на еще одно число в диапазоне между 0 и 1.5, для Фейсбука это почти всегда было больше 1
Итоговая оценка также влияет на получение повышений, нельзя перейти на следующий уровень получив MA. Также получить EE на 3 уровне и на 8 это две огромные разницы
Обычно на перфоманс ревью уходит 4-6 недель времени почти всего менеджмента компании. Это лучшая из системных процедур что я видел в плане оценки сотрудника, но она отнимает кучу времени. В ФБ с этого года обещают 1 перфоманс ревью в год, но по прежнему два окна для промо - посмотрим как они это реализуют. Возможно дадут больше власти менеджеру?

К слову у нас в Блокчейне запустили перфоманс ревью с этого года, сейчас как раз проходит первый экспериментальный сбор калибровочных пакетов, затем пойдут калибровки
#BigTechLevelsCompensation
👍251
This media is not supported in your browser
VIEW IN TELEGRAM
В субботу снимали промо для запуска нового проекта
👍5😁3💩3💅1
Пожалуй последнее что нужно знать перед детальным описанием левелов, это то, что единого стандарта пока что нет. В целом стараются придерживаться линейки ФБ/Гугла, но например 4 уровень в Apple это 5 в ФБ/Гугле, но Staff Eng в Linkedin это 5 уровень в фб и 4 в Apple.
#BigTechLevelsCompensation
👍2
В среду у меня новый кандидат.

Закончил прикладную математику в университете в Калифорнии, Master of Science in Data Science из Универа Чикаго.
В резюме пишет что знает PySpark, Tensorflow, PyTorch (работал с Databricks), A/B тесты и Model Deployment (Flask) !

Очень интересно посмотреть правда ли это так, надеюсь что да
В среду в ФизТехе веду семинар у магистрантов Кафедры Промышленного Анализа Данных Х5 по ML System Design

Я подготовил две сложных темы, поэтому и отвечать на них будут преподаватели:
Principal Engineer из OLX, Berlin
Руководитель Направления Машинного Обучения из Х5, Москва

Думаю получится интересно
👍5
Начнем по порядку. Е3 - иначе именуемый джуниором.
Примерная компенсация (берем США за точку отсчета)

Базовая зарплата - 110 - 140 тысяч долларов в год
Бонус - 5% от этого в год
Initial grant ±150 тысяч долларов
Refresher ~ 30 тысяч долларов в год
Может быть бонус за подписание от 30 до 100 тысяч долларов
Total Comp порядка 170-200 тысяч долларов в год, без учета бонуса за подписание

Что ожидается от E3?

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

Способность решать все более сложные задачи. Желание и готовность искать новую работы, если текущие задачи решены. Желание принимать больше отвественности со временем

Понимание кодовой базы продукта или системы где ты работаешь. Способность предлагать улучшения и дополнения

Большая часть работы выполняется вовремя. Плотное сотрудничество с техлидом/менеджером, чтобы они помогли развить навык эстимации (оценки времени)

Принятие критики и работа над собой после получения конструктивной обратной связи.

Понимание и следование стандартам в фб в области дизайна, разработки, документации, ревью, тестов, анализа и деплоя кода. Демонстрация умений в анализе данных, программировании и SWE. На выходе должен получаться код высокого уровня, покрытый тестами, абстракции и Фреймворки используются когда необходимо

У Е3 есть 24 месяца чтобы стать Е4
- иначе на выход
#BigTechLevelsCompensation
👍213
Brexit вносит свои корректировки. Теперь, чтобы привезти сотрудника из Греции или Италии, необходимо делать ему рабочую визу.

Сегодня решили что нанимаем стажера из Италии на 6 месяцев, но он не может работать из Лондона, потому что рабочую визу мы делаем только для Full-time employee.

Впрочем, думаю с полутора медианными зарплатами среднего итальянца он не будет долго горевать, а затем мы его увезем за море

#CoolStory
👍5
У трех сотрудников Ковид, один в Аргентине, второй в Лондоне, Третий в Бостоне. У одного вообще нет симптомов, у второго легкие, у третьего средней степени недомогание. Можно через свою команду следить за распространением эпидемии
Недавно я рассказывал про статью 2021 года, Using Synthetic Controls: Feasibility, Data Requirements, and Methodological Aspects

Если задуматься, эта статья тесно связана с методами матчинга , только вместо поиска подходящего матча, мы его создаем
Возникает вопрос, как же подобрать матч? Раньше в моей голове в эти моменты всплывал propensity score

К счастью, недавно я наткнулся на статьи и выступления Gary King, который сейчас директорствует в Гарварде в the Institute for Quantitative Social Science.

Советую ознакомиться с его выступлением Gary King, "Why Propensity Scores Should Not Be Used for Matching"
https://www.youtube.com/watch?v=rBv39pK1iEs&t=3103s
В этом выступлении есть очень интересный слайд, в котором утверждается что если мы проводим Fully Blocked А/В эксперимент, то это снижает стандартную ошибку оценки эффекта на 600%

Что в целом начинает напоминать чем-то стратификацию через множество ковариат

#ArticleReview
👍3
Е4 - иначе именуемый мидлом.
Примерная компенсация (берем США за точку отсчета)

Базовая зарплата - 140 - 170 тысяч долларов в год
Бонус - 10% от этого в год
Initial grant ±300 тысяч долларов
Refresher ~ 60 тысяч долларов в год
Может быть бонус за подписание от 50 до 100 тысяч долларов
Total Comp порядка 250-300 тысяч долларов в год, без учета бонуса за подписание

Что ожидается от E4?

Все тоже, что требуется от Е3 плюс:

Способность деливерить средние и большие фичи, включающие множество задач, самостоятельно

Умение поддерживать собственную продуктивность

Демонстрация strong software engineering skills. Проектирование и написание хорошо структурированного кода. Способность идентифицировать код, требующий улучшений. Если трогаешь какой то кусок кода, после тебя он лучше, чем до тебя, включая миграцию на новые фреймворки и доп тесты

Умение доводить проекты до конца работая, с другими командами ( продакты, дизайн, продакшн инженеры) и понимание как организовывать вещи для запуска различных релизов

У Е4 есть 33 месяца чтобы стать Е5 - иначе на выход
#BigTechLevelsCompensation
👍193
Сегодня я начну цикл из трех историй про собеседования в Яндекс трех разных людей. Двое из троих получили офер, но никого из них это не обрадовало.
Для меня очень обидно было слышать эти истории, ведь на протяжении четырех лет я был Яндексоидом, испытываю максимально теплые чувства к этой компании и зачастую ставил процессы в Яндексе в пример другим

Все события произошли во второй половине 2021 года

Начнем мы с истории некоего В.

Итак, В. написал его давний приятель, который на тот момент был Yandex Fellow. Он спросил В., собирается ли тот возвращаться в Россию, ведь у него есть интересное предложение в крупную структуру внутри Яндекса, возглавить ее команду аналитики и ML. В. был непрочь пообщаться с Яндексом, позиция была довольно интересной и привлекательной.
В. назначили встречу с потенциальным руководителем, а затем с рядом других людей. Все это были люди внутри Яндекса весьма известные, а один из этих людей даже находился на этой странице https://yandex.ru/company/people

По субъективной оценке В., он довольно неплохо прошел все этапы, но в реальности из всех этапов только один был заполнен во внутренней системе Яндекса, Фемиде и тот бы отмечен успешно.
Затем В. предложили порешать гномиков, то есть пройти техническое собеседование. Для Разработчиков это называется АА секция, для аналитиков совсем недавно ввели ААА секцию.

В. стоически прошел и через этот этап, ведь навык решения гномиков - первейший при управлении командой в 100+ человек. Впереди маячила секция по статам, но ее отменили из-за отпуска собеседующего, новую не назначили. В. Написал потенциальному руководителю, как так? Тот ответил:
- Секцию по статам отменили т.к. мы решили, что у нас и без неё будет достаточно информации про твои hard skills (которые на хорошем уровне).
- В целом мы провели достаточно секций. Больше, думаю, не потребуется. Нам будет нужно некоторое время чтобы внутри себя понять что и когда мы хотим предложить.

Спустя какое-то время к В. действительно пришли и сообщили:
- Простите, что давно не возвращалась к вам:
- Вы, возможно, уже знаете, что роль аналитика, на которую мы вас рассматривали, отменилась. Ребята поняли, что им не нужен фултайм-сотрудник на эту роль.

В. Не знал этого, ровно как и не знал того, что это была роль аналитик, все это время он думал что это руководитель аналитики. Но тут его успокоили и сказали что аналитик это для простоты, как кодовое название

Через пару дней В. cнова написали
- Будете ли вы открыты поговорить со мной и моей старшей коллегой в зум? Мы поняли, что из-за спешки мы в начале знакомства не поговорили обстоятельно про ваши ожидания и пожелания

Если бы не история, которая произошла в Яндексе с двумя другими людьми до этого, В. бы удивился, но В. знал эти истории и не удивился
В. поговорил и ему сказали что сейчас пройдет ревью и будет конкретика, к нему вернутся, а предыдущую роль разорвали на много маленьких кусочков, примерно то чего боялся медведь Балу в Маугли.

Через несколько недель В. с удивлением заметил, что его потенциальный руководитель покинул Яндекс. Тут то он все и смекнул

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

В. оперативно пообщался в тот же день, но когда ему сообщили что ищут человека который сможет управлять большой командой и обладать тех. навыками и что такого найти сложно и нужно будет пройти специальные секции, он слегка взволновано спросил.
- ААА секцию?
- Да, ААА секцию

На что В. cпросил, смотрели ли его Фемиду до встречи, на что ему сказали что не смотрели. В. Удивился и попросил собрать все с Фемиды и затем обсудить детали. Надо ли говорить что к В. не вернулись, а на Фемиде ничего не обновилось?
В. не до конца понял что произошло, в чем же проблема? В нем, в секциях, в вакансии, в Яндексе? Вроде бы и рекрутер вернулся с чем-то положительным и его начальник, и причины понятны, почему эта вакансия пропала. Но все это оставило странное послевкусие
👍222
Так и остался В. на чужбине, написав удивленное сообщение своему товарищу

#JobInterviewStory
👍6
В качалках Лондона вес на блоке обычно заканчивается на отметке в 200 фунтов

В Москве, в пацанской качалке на районе был найден правильный блок с правильным весом в 310 фунтов

Я не мог не воспользоваться возможностью полетать на нем. Полет приложу в комменте
👍7
Сколько себя помню, каждый раз когда я пересекался с маркетологами дольше получаса, постоянно поднималась проблема аллокации маркетингового бюджета и вопрос про инкремент.

Например, почти два года назад во время ужина, тогдашний и нынешний маркетинговый директор Е-Аптеки, Наталья, задавала мне этот вопрос, надеясь что я смогу ей как то помочь. Я ей что-то напредлагал через causal impact, но особо мы ничего не сделали. Проблема аллокации настолько классическая, что есть даже избитая цитата: Half the money I spend on advertising is wasted; the trouble is I don’t know which half.
К слову, раньше ужины с Натальей мне нравились гораздо больше, ведь она была директором по маркетингу Тануки с 50% скидочной картой

Как альтернатива решения этой задачи в моей голове всегда лежала статья 2019 от чуваков из Alibaba - A Unified Framework for Marketing Budget Allocation

Недавно я наткнулся на гораздо более многообещающую и в тоже время простую штуку, которая называется MMM Robyn, выпущенная компанией Meta (aka Facebook)
https://facebookexperimental.github.io/Robyn/
К сожалению МММ означает всего лишь Marketing Mix Modeling

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

Попробуем пойти чуть глубже и начнем с данных
Зависимая переменная - метрика которая нас интересует, KPI - например продажи или GMV
Независимые переменные - признаки, которые влияют на зависимую переменную: медиа маркетинг, Non-media marketing(промо, скидки), сезонность (выходные, праздники, погода и тп.), макроэкономические факторы и многое многое другое

Подробнее о данных
Медиа активность:
Цифровые каналы - идеально количество impressions, не клики, так как показы имеют накопительный эффект и тоже могут привести к конверсиям без клика
Для Радио и ТВ Gross Rating Points (GRPs) или Target Audience Rating Points (TARPs).
Для печати - количество подписчиков/проданных единиц
Учитывать ли органику? Обычно советует включать только платный трафик, теоретически можно включить и органику

Non-media marketing:
Бинарный флаг, означающий наличие или отсутствие определенного типа промо - стоит подумать над регулярностью и какие промо заслуживают своего собственного флага
Временной ряд стоимости товаров/услуг

Сезонность и праздники:
Robyn предлагает использовать для выделения этих компонент встроенный prophet
Либо считать самостоятельно и указывать дополнительными бинарными флагами различные праздники, также можно использовать температуру для явного разделения сезонов (лето/зима)

Макроэкономика:
ВВП, безработица, инфляция, в наших реалиях, наверняка курс валюты

#ArticleReview Robyn 1/8
👍176
Сколько данных нужно? Минимум два года при недельной гранулярности. Лучше иметь дневную гранулярность
Кроме гранулярности во времени, мы бы хотели иметь гранулярность по переменным, как пример приводится следующая картинка

#ArticleReview Robyn 2/8
👍1
Какая же библиотека от Фейсбука, без другой библиотеки от Фейсбука, поэтому немного про то, какой функционал добавляет Prophet
Prophet выделяет тренд, сезон, выходные и праздники/спец события

Robyn позволяет использовать окна моделирования разной длины для MMM и для выделения тренда/сезона и прочего через Prophet.
Возникает вопрос, окно какой длины выбирать?
Зависит от многих параметров - например скорость изменения рынка и маркетинговых практик. Скорее всего нет смысл смотреть что было десять лет назад. Что насчет пяти? Двух?

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

#ArticleReview Robyn 3/8
В качестве модели выступает регрессия с L2 регуляризацией(Ridge Regression) на зависимую переменную, с рядом ограничений и задачей минимизировать две, а в некоторых случаях три функции потери
Мы можем задать ограничения (constraints) на знак коэффициентов в модели: положительный, отрицательный, никаких ограничений
Независимые переменные делим на три категории и отправляем в модель:
paid_media_vars - собственно реклама, за которую мы платили, к этим переменным еще будут применены различные трансформации, о которых дальше, чтобы оценить эффект насыщения (saturation) и накопления (adstock)
organic_vars - пуши, посты, емейлы. На эти переменные тоже можно наложить трансформации для оценки эффекта насыщения и накопления
context_vars все остальное, активность конкурентов, цены, промо, макроэкономические факторы и тп

Теперь по поводу оценки adstock и saturation
Adstock
- скорее всего в реальной жизни реклама имеет не мгновенный, но накопительный эффект, сколько лет прошло, а две мясные котлеты гриль засели в памяти до сих пор
Saturation - каждая следующая единица рекламы начинает приносить меньший эффект, после достижения определенной точки

Для учета Adstock в Робине есть две опции Geometric transformation и Weibull transformation
Первое попроще, использует всего один параметр Тета, но аппроксимирует хуже, второе посложнее и тяжелее объяснить его для нетехнарей, но аппроксимирует лучше. Используется The Weibull survival function
Weibull, как более сложная трансформация требует больше итераций для оптимизации через NeverGrad(о нем позже)

Для Saturation и построения S-curve используют двухпараметрическую функцию Хила (Биохимия входит в нашу жизнь)

#ArticleReview Robyn 4/8
👍2
В модели это выглядит следующим образом

#ArticleReview Robyn 5/8
👍2