Время Валеры
25.2K subscribers
166 photos
6 videos
1 file
348 links
Мне платят за то, что я говорю другим людям что им делать.
Автор книги https://www.manning.com/books/machine-learning-system-design
https://venheads.io
https://www.linkedin.com/in/venheads
Download Telegram
Часть 3/3
Прошел год после выхода на новую работу
Идет планирование. Раньше это были дебаты, сейчас это ревью метрик и прокси метрик - есть целая иерархия метрик. Работа с ПМами дала свои плоды, они часто подтверждают свои результаты выкладками из аб или инсайтами из данных. Дата Аналитики помогли найти несколько багов за счет Exploratory Data Analysis. Идут работы по атрибуции для маркетинга. Тест рекомендашек оказался крайне успешным, но раскатить на 100% не так просто. СЕО дала зеленый свет - будем подключать инженеров. Множество тестов оказались безрезультативными или даже негативными. Но теперь это не провал, а повод понять что наша картина мира не совпадает с реальностью и нужно проводить дополнительные исследования

Что было у меня Примерно через год мы начали приносить деньги - ряд проектов выстрелил, иерархия метрик и внедрение культуры АБ тестирования заняли больше времени. Атрибуцией занялись с самого начала. Множество тестов оказались серыми или даже негативными, но это не провал, это норма. Уровень успешных тестов заметно выше того, что я видел в других местах, это вызывает уважение. Работа с ПМами дала свои плоды, они часто подтверждают свои результаты выкладками из аб или инсайтами из данных

#CoolStory
У меня есть друг и его зовут Адам Елдаров. Сейчас он CPO (Chief product officer) в youdo.com и отвечает за всю продуктовую часть этого сервиса. Наш общий друг постоянно называет его C3PO и Адам не обижается. Мы дружим с ним уже года три или четыре, хотя я до конца не уверен, потому что за все это время мы так ни разу и не ездили с ним вместе на гелике и не стреляли в воздух из калаша, возможно я ему и не друг вовсе.

Кроме продуктовой работы, Адам умеет писать код, разбирается в мл опс и девопс, машинном обучении и аналитике. Или старательно делает вид, но у меня не хватает квалификации его разоблачить, оцените например это видео https://m.youtube.com/watch?v=F-j0G0lrjFw
Кстати это именно он писал здесь коммент, мол чего это вы делали платформу АБ тестирования так долго и вдесятером, я один за две недели справился

Ещё он автор этого документа, https://youdo.notion.site/Product-Skills-Track-32bdfbe6b6c64bd182474c2050fa19d8 product skills track

Если бы у меня была своя компания и мне пришлось бы платить свои деньги, чтобы другие люди делали работу, я бы хотел нанять туда Адама.

К сожалению сегодня нанимаю не я, а он и не меня, а аналитика. В первом комментарии я сброшу описание, здесь скажу по деньгам. 200-300 тысяч рублей в месяц на руки база для аналитика и 300-400 для Лида. Правда чего хочется от Лида в первом комменте не будет. Возможно это неслучайно
Также Адам утверждает что премий нет и придется ему поверить. Хотя я не верю

#friends
В ближайшее время я буду рассказывать про инженерные грейды в технологических компаниях, на примере Фейсбука.

Эта система практически полностью повторяется в Гугле. Из российских компаний я встречал рабочую систему грейдов только в Яндексе.
Прежде чем описывать каждый грейд детально, начнем с общей информации
Существуют две основные ветки, Individual Contributor и Manager, при этом компенсация зависит от уровня, то есть VP и Инженер высокого уровня будут получать одинаковые деньги

Слева будет IC грейд и название, справа менеджер грейд и название

E2, Cтажёр, -, -, L2 Гугл, 12 грейд в Яндексе
E3, Джуниор, -,-, L3 Гугл, 13-14 грейд в Яндексе
E4, Мидл, - ,- ,L4 Гугл, 15-16 грейд в Яндексе
E5, Senior/Tech Lead, M0, редкий грейд начального менеджера, L5 в Гугле , 17-18 грейд в Яндексе
E6, Staff Engineer/Senior Tech Lead, M1,Engineering Manager, L6 в Гугле, 18-19 грейд в Яндексе
E7, Senior Staff Engineer, Senior Engineering Manager, L7 в Гугле, 19-20 грейд в Яндексе
E8, Principal Engineer, Engineering Director, L8 в Гугле. В Яндексе я с такими людьми мало тусил, пожалуй только Анатоликс (был руководителем разработки Поиска) и Алексей Шевенков (был техническим директором Маркета), если говорим про технарей

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

Tensorflow - для нейронных сетей, PyTorch для Deep Learning, вместе они для Machine Learning
Data Pipeline - это скрипт в питоне, подключающийся к MySql - на вопрос а как ты его регулярно запускаешь, сказал что нажимал на зеленый треугольник
Hadoop - он для больших данных, это единственное что получилось вытащить
Random Forest - классифицирует, там есть fit и predict

Замечу что все эти вещи указаны в резюме в разделе Tech Skills

Код я спрашивать не стал

#JobInterviewStory
Не так давно, компания где я работаю выдала другой компании кредит в 525 миллионов долларов, чтобы те спокойно майнили крипту и не переживали.
Еще более недавно, мы купили Аргентинскую контору SeSocio и теперь все сто сотрудников оттуда стали нашими коллегами. Досталось и мне, я получил дата инженера и проект по интеграции всей дата инфраструктуры SeSocio. Меня терзают сомнения что это равноценный обмен.

Вот мой Босс получил командировку на три-шесть месяцев в Буэнос-Айрес и задачу отмасштабировать и превратить офис SeSocio в центральный офис в Латинской Америке. Он это умеет, не зря же рулил офисом Гугла в Сиэтле, где сейчас работает свыше 6300 человек. Не знаю насколько это равноценный обмен в его случае, но звучит неплохо.

Босс говорит что в Аргентине хорошие инженеры и дата саентисты, потому как достойные университеты. После сегодняшнего интервью с парнем из Штатов я не удивлюсь если это так, бейзлайн невысок. Вчера пообщался с CTO и Кофаундером SeSocio Гастоном Красным (да, у него русская фамилия), пообещал подогнать кандидатов, так как он сам в прошлом дата саентист. С интересом жду

#CoolStory
Прежде чем перейти к описанию инженерных уровней опишем из чего складывается 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
This media is not supported in your browser
VIEW IN TELEGRAM
В субботу снимали промо для запуска нового проекта
Пожалуй последнее что нужно знать перед детальным описанием левелов, это то, что единого стандарта пока что нет. В целом стараются придерживаться линейки ФБ/Гугла, но например 4 уровень в Apple это 5 в ФБ/Гугле, но Staff Eng в Linkedin это 5 уровень в фб и 4 в Apple.
#BigTechLevelsCompensation
В среду у меня новый кандидат.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#CoolStory
У трех сотрудников Ковид, один в Аргентине, второй в Лондоне, Третий в Бостоне. У одного вообще нет симптомов, у второго легкие, у третьего средней степени недомогание. Можно через свою команду следить за распространением эпидемии
Недавно я рассказывал про статью 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
Е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
Сегодня я начну цикл из трех историй про собеседования в Яндекс трех разных людей. Двое из троих получили офер, но никого из них это не обрадовало.
Для меня очень обидно было слышать эти истории, ведь на протяжении четырех лет я был Яндексоидом, испытываю максимально теплые чувства к этой компании и зачастую ставил процессы в Яндексе в пример другим

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например, почти два года назад во время ужина, тогдашний и нынешний маркетинговый директор Е-Аптеки, Наталья, задавала мне этот вопрос, надеясь что я смогу ей как то помочь. Я ей что-то напредлагал через 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