Техноцели (4/4)
Кстати, о непосредственно работе над техноцелями. (Врочем, этот абзац в той же степени справедлив для продуктовых целей.) Если вы в команде распределяете цели/проекты по людям, которые в дальнейшем тащат их в 1 щачло, вы плохо работаете с рисками. Например, есть 4 человека в команде. И 4 цели/проекта. Если каждый человек будет делать свой проект, то к концу квартала вы рискуете подойти с 4 незаконченными проектами. Напомню, проект, законченный на 90% - это незаконченный проект. Даже если случится чудо, и все успеют закончить свои проекты, пользу от этих проектов мы начнем получать лишь с конца квартала. Не лучше ли сначала командными усилиями, вчетвером, затащить самый ценный проект и уже через месяц начать получать с него профит, потом командой затащить второй, и в середине квартала получать пользу от него, и так далее? Тут работает тот же cost of delay, быстрее обналичиваются эффекты, да и риски легче митигировать.
Любой прогресс нужно трекать. Для этого у нас есть ежемесячные гринлайты/чекапы.
Там мы смотрим вот примерно то же самое, что попало в планирование - И*-Р2-П1-С*-В[1-3].
Плюс иногда смотрим на большие цели - есть ли там изменение динамики вследствие успехов/неуспехов локальных вех.
Плюс там рассказываем о влетах и можем упомянуть про мелкие, но важные/интересные задачки.
В конце полугодия полезно собрать итоговый результат - по средним и большим целям, а также по метрикам вечных.
Также отмечу, про промежуточные точки контроля нужны не только для того, чтобы проветь свою успеваемость, но и для возможных корректировок планов. Чем чаще мы сверяемся, правда ли текущие усилия приближают нас к целевой картине, тем больше у нас возможностей адаптировать свой план к конъюнктуре момента. Короткая гранулярность сверки помогает быстрее поворачивать в нужную в моменте сторону.
Итого, я бы предложил два вида техноцелей - большие (цели) и небольшие (проекты).
Остальная техничка никуда не девается, но ее можно так явно не заводить и не трекать, лишь бы все работало хорошо (ну типа метрики, все такое).
Большие цели обязательно должны декомпозироваться на какое-то количество небольших проектов по принципу OKR - то есть мы верим, что вот такие проекты приведут нас к цели.
При этом не обязательно каждый небольшой проект должен быть привязан к какой-то большой цели, если он сам по себе обоснованно полезен.
Каждый проект должен иметь объяснимую пользу, желательно на метриках.
Если этот проект делается в рамках большой цели - он сам по себе тоже должен приносить частичную пользу.
Также удобно укладывать цели/проекты в дерево, чтобы было наглядней, в какие метрики оно бьет.
То есть флоу должен быть примерно такой:
стратегия -> цели (зачем?) -> проекты (как?) -> планы -> ... -> профит!!! -> статус-чек
Итого получаем каскад от ценностей к конретному плану с оценкой результата и профита. Как-то так.
Техноцели (3/4)
Берем вариант И1-Р1-П1-С1-В1, то есть внутренняя маленькая планируемая асап крит цель. Такие предлагаю пропускать мимо всех процессов. Потому что вряд ли ей кто-то будет интересоваться, задача срочная и важная, лучше сразу сделать и не тратить время на оформительство.
Впрочем, то же самое можно сказать про все маленькие цели. Просто если источник - руководство или инфра, а важность - крит или важно, задачу И[2-3]-Р1-П*-С*-В[1-2] нужно
а) точно сделать (не продолбать),
б) сказать об этом заказчику в свободной форме. То есть формализм с целями и планированием тут избыточен, если вы выполняете свои обещания и у вас норм коммуникация с заказчиком.
Прежде, чем приступать к планированию, нужно убедиться, что у нас есть актуальная стратегия технологического развития. Потому что если ее нет, не получится убедиться, что проекты в плане не отдаляют нас от целей. В стратегии должны быть зафиксированы какие-то таргет-стейты, целевой стек, чувство прекрасного, а также - утвержденные большие цели (Р3) на горизонте. И уже составляющие этих больших целей должны быть пригодны к планированию. Большие цели планировать бесполезно, их нужно декомпозировать с убывающей детализацией.
В стратегии стоит обозначать основные постулаты, что мы считаем хорошим и правильным. Каким требованиям должна верхнеуровнево отвечать система. Какие подходы мы практикуем. Эдакий манифест + таргет-стейт.
Про влеты. Очевидно, на то они и влеты, что запланировать их нельзя. Но нужно понимать, что они будут. А значит -
а) оставлять под них небольшой зазор (никогда не планируйтесь "под крышечку"! кстати, продуктовых целей это тоже касается),
б) при появлении влета максимально прозрачно уведомлять стейков тех проектов, которые сдвинутся из-за влета (и на гринлайте/чекапе тоже подсвечивайте).
Асап-криты (И*-Р*-П2-С1-В1) примерно все тут.
Про вечные цели. Тут тоже нет большого смысла упарываться в их оформление или планирование. Просто не продалбывайте их показатели, и всем будет все равно, как вы это делаете. Условно говоря, можно не ставить цель "повысить рпс-аптайм в сервисе Х", если на момент гринлайта там будет целевое значение.
Таким образом, воронка проектов, пригодных к планированию, состоит из небольших планируемых целей И*-Р2-П1-С*-В[1-3]. Уже не столь важен источник - для прозрачности работы и корректности учета капасити нужно планировать и внутренние задачи тоже. Размер проектов должен позволять уложить их в 1-2 квартала. Если больше - декомпозируйте.
Дальше осталось приоритизировать проекты, исходя из их срочности и важности. Тут уже можете сами выработать формулу отношения порядка. Но интуитивно - срочное-важное должно попасть в план с сильно большей вероятностью, чем бессрочный найс-ту-хэв. Рекомендую попробовать посчитать такую метрику как cost of delay - и брать в работу в первую очередь те проекты, откладывание которых стоит дороже. Но, очевидно, если задача асап - ее надо сразу брать в работу. Если есть конкретный срок, и он в планируемом ку, надо брать (если в следующем ку, но работы много - нужно брать уже в этот). И сначала критичное и важное. И уже потом полости в плане заполнять не-срочными и найс-ту-хэв вещами. Ими же можно заполнять полости в процессе квартала, например если не было влетов, а зазор остался.
Техноцели (2/4)
Техноцель - по сути, это все, что не исходит от продукта/бизнеса напрямую.
Оно может появляться из разных (И)сточников:
1. Изнутри команды. Чаще всего, вам самим видней, что болит, и во что нужно проинвестировать. Тут вам нужно уметь объяснить "чтобы что". Например, мы хотим потратить месяц на рефакторинг сервиса Х, потому что сейчас разбор каждого дьютика по нему занимает час+, а после рефакторинга мы сможем дать техсапу тулинг самостоятельного разбора жалоб.
2. От руководства. В рамках какой-то стратегии или вижена. Руководство тоже должно объяснить "чтобы что". Например, переписать легаси-сервис Х на стек У, потому что найм разработчиков на стеке У дешевле и мы хотим в перспективе переходить на него.
3. От инфры. Обычно связано с какими-то масштабными переездами/стройками. Тот редкий случай, когда аргументации "чтобы что" может не быть. Например, переезд в новый оркестратор деплоя, потому что старый закапывают (а вот с хрена ли, и кому станет лучше - не всегда легко выяснить, но сделать с этим иногда ничего нельзя).
Другой разрез целей - их условный (Р)азмер/продолжительность. Тут цели бывают
4. Маленькие. То, что можно сделать за 1-2 спринта. Просто сделайте и не любите голову, как их оформлять и отчитываться, дольше расписывать. Просто если это важное, предупредите соседние команды, кому полезно знать, и, может, расскажите о результатах на техновстрече, если есть что поведать. Например, "а кстати - мы тут запилили клевый линтер, можете переиспользовать".
5. Небольшие. Делаются за квартал или два. Их надо нормально описать и защитить, они составляют костяк утилизации техноквоты. Например, написать драйвер для постгреса под ноду.
6. Большие. Занимают больше полугода, иногда год-два. По ним нужно самое четкое описание и обоснование. Их нужно делить на этапы/вехи/майлстоуны. Иногда можно сразу весь проект расписать на несколько кварталов вперед, но чаще - ближайший этап описывается подробно, а последующие - верхнеуровнево. Важно, чтобы ближайший этап был четко обозрим, конечен, и должен уже приносить пользу даже до окончания проекта целиком. Например, распил очередного монолита.
7. Вечные. Это те направления деятельности, которыми нужно в той или иной степени заниматься перманентно - иногда более интенсивно, иногда менее. Например, выполнение метрик technical excellence, ZBP, secutity error budget. Тут важно четко понимать, где сейчас что западает, куда сильнее навалиться.
С точки зрения (П)ланируемости - тут все просто, есть всего два типа.
8. Можно запланировать заранее. Мы заведомо знаем, что это надо делать. Например, адопшен какой-то технологии.
9. Влёты. В планах не было, но внезапно появилась такая потребность. Например, уперлись в производительность какого-то куска и надо его оперативно сделать более масштабируемым.
Еще один срез - (С)рочность. Выделим три варианта:
10. Асап. Надо брать задачу вот прямо сейчас. Например, уязвимость 0 дня.
11. К определенному сроку. Например, к моменту вступления в силу какого-нибудь определенного закона.
12. Не важно когда, просто надо сделать. Например, перейти с самопального решения на какую-то поддерживаемую библиотеку.
И последнее - (В)ажность.
13. Крит. Нельзя не делать, есть сильный негативный эффект от не-делания. Например, баг, блокирующий функциональность.
14. Важно. Есть понятный положительный эффект от задачи. Например, тыква, которая снижает потери при инцидентах.
15. Nice to have. Лучше сделать, но не болит. Например, перейти на новый ci, потому что в нем есть какая-то фишка.
16. Можно не делать. Если цель попадает в эту категорию, лучше ее сразу закрыть. Ну а нафига.
Теперь, собственно, давайте разбираться, какое должно быть целеполагание и процесс трекинга целей в зависимости от их попадания в ту или иную комбинацию срезов выше. Тут буквально 288 вариантов получается, давайте их все раскидаем по форматам работы с целями. Шутка. Или нет?
Техноцели (1/4)
Недавно ребята в команде попросили описать некий вижен, как нужно работать с техноцелями.
С ходу ответа у меня не нашлось - как уложить соответствующую школу мысли в понятный флоу.
Как водится, начал записывать поток сознания, чтобы в процессе формулирования прийти к какому-то описанию этой деятельности.
Дописал и понял, что это какое-то капитанство
"за все хорошее и против всего плохого".
Но если кому-то не хватало такой общей школы мысли - значит, не зря писал.
Ну а раз уж этот текст появился, почему бы не поделиться им тут.
disclaimer: не претендую на полноту и точность, это майндсет, а не дословная инструкция.
WARNING: много букв.
HRBP Во многих компаниях есть такая должность - HR-business-partner. В отличие от обычных HR, которые чаще всего работают как функция, hr-партнер - это в первую очедь
партнер и часть команды. И если линейные сотрудники не всегда осознают их ценность, то руководитель без HRBP - как без рук.
Меня иногда спрашивают, зачем эти HRBP нужны. Я всегда даже теряюсь, потому что не знаю, с чего начать. Кажется, почти ни один вопрос без них не решается.
Я говорю не про продуктовые или технические вопросы, а скорее про функционирование организма команды. Ставки, найм, удержание, увольнение, перформанс-ревью, мотивация, тимбилдинги, мерч, реорги, командировки, бюджеты, мероприятия, ротации, грейдапы, стажировки, обучение, комплаенс, рост, развитие, бренд, зарплаты, офисы, переезды, закупки - можно продолжать
бесконечно.
У меня переписка с hr-партнером, кажется, больше, чем с руководителем, директами и женой вместе взятыми. Иногда мне кажется, что именно HRBP - те серые
кардиналы, которые рулят корпорациями. Без них точно не стоит принимать какие-то важные решения, касающиеся людей, структуры и организации.
Мне в последние 5 лет невероятно везет с моими hr-партнерами. Все, с кем я работал - супер-классные профессионалы и потрясающие
люди, что в этой профессии строго обязательно. Безмерно их люблю и уважаю.
Что им позволяет быть такими ценными для команды? В первую очередь - развитые софты. Эмпатичность, понимание людей и
"третье ухо", чтобы слышать несказанное. Во многом HRBP - почти что психологи. Они могут выявить проблемы у ребят, найти правильный подход к каждому, проработать и поднять мотивацию. К ним приходят плакаться, жаловаться, хвастаться (но чаще - плакаться).
HR-партнёр должен быть и “человечком рядом”, и профессионалом, который не растворяется в проблеме, а помогает найти решение. Они могут диагностировать выгорание и помочь его остановить. Реально - психологи. Только в отличие от врачей-психологов - они погружены в твои проблемы изутри и варятся в тех же процессах, а значит - лучше тебя понимают. И от того - тоже могут выгореть. Так что берегите своих HRBP.
И когда hr-партнер выгорает и хочет уйти от корпоративной суеты - чаще всего, он начинает практиковать как раз психологию или коучинг. Суть - почти та же, но без орг-вопросов.
На днях общался с одним из моих прежних HRBP из Еды -
Настей. Она была партнером моей команды полтора года и помогла нам пройти через огонь, огонь и еще огонь. Сейчас Настя как раз помогает выгорающим айтишникам и пишет про это у себя в канале - @zmtkidgvch - братский рекомендасьон.
Вот этот пост прям все объясняет.
На собственной шкуре Если вы делаете продукт, у которого есть пользователи, вы просто обязаны быть одним из них. Иначе как вы сможете убедиться, что делаете не фигню? Но как быть, если ваши пользователи - не конечные консьюмеры, а другие участники процесса - курьеры, кладовщики, саппорт? Конечно же, ходить "в поля". Когда я работал в Еде, я раза 4 ходил курьерить, потому что занимался логистикой. А еще дважды ездил в контактный центр посидеть на линии саппорта, ибо другая моя команда занималась инструментами подержки. Сейчас, с переходом в операционный продукт Лавки, обилие новых участников процесса, пользующихся продуктами моей команды, и сложность физического мира точно заставляют проверить все это на своей шкуре.
Буду вам понемногу рассказывать, что такое Лавка изнутри. Клиентский продукт видели все, кто живет в одном из пары десятков городов нашего присутствия. Но что же скрыто под капотом - выясняю сам и рассказываю вам. На прошлой неделе я сходил поработать кладовщиком на даркстор.
Даркстор - это небольшой склад, с которого продукты доставляются непосредственно вам. Эти сторы - на то и дарк, что скрыты от глаз стороннего наблюдателя. Хотя внутри, на самом деле, светло. Их адреса хоть и не афишируются (вам не нужно знать, где они), большой тайной не являются - их нетрудно обнаружить по скоплению голубых курьерских велосипедов рядом с ними. А рядом с некоторыми еще гнездятся роверы - роботы-доставщики, развозящие заказы в нескольких районах. Дарксторов у нас сотни, из них >100 - в Москве. Каждый обслуживает район в несколько км2 - чтобы от склада до любой точки было несколько минут езды на эл.вело - нам нужно держать срок доставки в пределах 15-20 минут с учетом сборки.
Площадь даркстора невелика - в районе пары сотен м2. Зависит от доступных площадей - что удалось найти и снять. Потому и планировочные решения порой удивляют. И на этой небольшой площади с черт-знает-какой планировкой нужно уместить стеллажи на несколько тысяч sku ассортимента, несколько холодильных комнат, морозилку, а иногда и кухню. Про кухню и ИТ-инфру расскажу еще потом отдельно.
А пока представим себе, что кладовщик - партнер сервиса - пришел на смену. Например, я. Основной рабочий инструмент кладовщика - ТСД (терминал сбора данных). Он напоминает толстый смартфон со сканером штрих-кодов, на котором крутится приложение, разрабатываемое моей командой - Полка. Эргономика самого ТСД и приложения должна быть выверена максимально - счет времени сборки 1 позиции измеряется секундами. Вот я залогинился в свой ТСД, который мне выдали с зарядки, и на экране уже первые заказы.
Беру в работу 2й. Потому что 1й - с доставкой ровером, и надо будет выходить на улицу, чтобы положить его в отсек робота-доставщика. Это пусть делает Серега, с которым мы пошли в поля, он еще в куртке. Заказ в работе, и я уже вижу на экране первый товар. Указан № стеллажа, № полки, наименование sku, товарная фотография. Иду по указанным координатам и сразу вижу нужный товар - роллтон с курицей.
Почти на каждой полке лежит несколько разных товаров. Как не перепутать, что именно взять с полки? Выручает принцип не-соседства похожих товаров. На одной полке могут быть роллтон с курицей и гречка, но не могут быть роллтон с курицей и роллтон с говядиной, потому что тогда, как раз, велик шанс ошибки.
Впрочем, ошибиться все равно не получится - каждый товар, который я кладу в корзинку, я сканирую ТСД-шкой по штрих-коду, и если я пытаюсь положить в корзинку что-то не то, Полка не даст мне это сделать. Ура, первый товар собран! Полка уже ведет меня ко второму. Разумеется, порядок сбора оптимизирован, чтобы я меньше занимался челночным бегом.
Все позиции собраны, и Полка зовет на упаковку. На специальном столе я пишу на пакете номер заказа, упаковываю его и кладу на стеллаж у выхода, откуда его заберет курьер. И сразу беру следующий заказ. За полтора часа я собрал 17 заказов (avg 3.5 мин), в которых было 73 товара (avg 28 сек). После этого я, довольный и со списком доработок Полки, ушел в офис.
Догфудинг - добро. Ходите "в поля". To be continued.
Разборки Вы любите разборки? Я люблю. Но не те, где тёрки и вопросики, а где тачки и зип. Если вы - нормальный человек, и не очень понимаете, о чем речь - поясню. Разборками называют точки продажи б/у деталей с разобранных авто. Иногда это пустырь с полуразобранными машинами, где ты чуть ли не сам откручиваешь нужное тебе с какого-то трупа. Это, скорее, джанк-ярд, и у нас такое редко практикуется. Иногда разборка представляет собой цивильный склад, где все детали по полочкам, подписаны и продаются по каталожным номерам. Но чаще всего - это гаражи, где с разной степенью упорядоченности хранятся полезные остатки нескольких машин.
Гаражи - это всегда атмосферно. Оказываясь там, ты окунаешься в параллельную вселенную. В гаражах будто время течет иначе - более размеренно, тягуче. Мужики упоенно ковыряются в машинах, коты горделиво гуляют по крышам, собака неспешно грызет кость, а сторож тут явно дольше, чем сами гаражи, как будто это их к нему пристроили, а не его к ним приставили.
В гаражных разборках я себя чувствую, как ребенок в магазине сладостей. Ну в таком, где яркие карамельки лежат в огромных бочках. Хочется решительно всего и сразу, даже если ты не понимаешь, что это. От неоправданных покупок меня уберегло лишь отсутствие четкого понимания дальнейшего плана - что мне нужно.
Поэтому я ограничился передними креслами, задним диваном и замками задних ремней. Салон в нашей е30 требует замены хотя бы потому, что он от другой машины (то ли е36, то ли е46). Вряд ли кто-то еще это мог бы узнать, но мы то в курсе. А значит, во имя восстановления аутентичности, нужно поставить оригу. Не делать с салоном ничего все равно не было возможности - он скучный. Так что следующим шагом салон пойдет в перешив. Результатами, само собой, поделюсь по готовности.
А сама бэха, тем временем, висит в серваке. Потому что сделать всю техничку сами мы с Лёхой не можем. Тут, кстати, отдельная сложность. Сначала примерно 10 сервисов еще по телефону отказались иметь со мной дело, как только слышали год выпуска авто. Еще один сервис было согласился, но после диагностики отказался браться за дело. Лишь один сервак пообещал все сделать, и то потом пытался соскочить. Но мы не сдаемся.
#лёха_строит_бэху
Курсор и его друзья (тесты) Все, что нужно знать об использовании курсора, выражается во фразе, которую я на днях услышал от ребят из команды:
"Да я там все курсором сделал. Вроде норм, но тесты почему-то падают."Если после изменений курсором у вас не упали тесты - возможно, у вас недостаточно тестов. Либо курсор уже подогнал их под свои изменения.
Надеяться, что курсор все сам сделал правильно - все равно, что зажать таб в ide и ждать, что автокомплит угадает все переменные в нужном порядке. То есть, вероятность почти та же, что в известной теореме о бесконечных обезьянах и "Войне и мире". Ну ладно, чуть выше.
Крч, еще раз напоминаю:
перепроверяйте все за ИИ-помощниками.
На то они и помощники, что лишь дополняют вас, а не заменяют.
Не будьте персонажем с иллюстрации к этому посту.
Если вы действуете с умом - курсор вам поможет. Если бездумно -
усугубит.
Автоматизация эффективых операций повышает их эффективность.
Автоматизация неэффективных операций повышает их неэффективность.
Да сколько можно отчитываться то? Тут синк по проекту, там гринлайт, потом чекап по целям, еще ганты какие-то, статусы - задолбали! - так думают многие участники команд, и гнев их праведный совершенно напрасен и пуст.
На самом деле, репортинг (как внутри команды, так и перед руководством) совершенно необходим.
И на то есть минимум три причины:
1.
Ты едешь туда, куда смотришь. Например, в автоспорте это тоже работает - в повороте надо смотреть не на апекс, а на выход - куда хочешь приехать. С целями так же - чем чаще ты смотришь на таргет-стейт, тем лучше понимаешь, как туда двигаться. Если смотреть только "под ноги", можно вписаться лбом в столб.
Тут логика примерно та же, как в другом известном внутри компании высказывании другого нашего топ-менеджера -
"Если раз в неделю смотреть на график, он неизбежно начнет загибаться в нужную сторону". Если вы регулярно большим составом уважаемых людей отслеживаете какую-то важную метрику, она под давлением всеобщего внимания начнет улучшаться. Потому что иначе ей будет стыдно (как и людям, за нее отвечающим)
2.
Укорачивание цикла обратной связи дает большую гибкость. Если вы слепо куда-то бежите целый год (или хотя бы квартал), у вас есть риск потом выяснить, что все это время вы бежали не туда. Или не так. Или недостаточно быстро, и уже можно было перейти на шаг (притом в другую сторону). Более гранулярный контроль достижения цели позволит раньше замечать отклонения от плана, а также убеждаться, что усилия правда приближают нас к цели.
Нет ничего зазорного в том, чтобы переобуться на лету, если ландшафт изменился. Или если появились другие способы достижения цели. Или если выбранный вами способ не работает. Важно уметь быстро адаптироваться к реальности и признавать ошибки. Только так можно добежать эффективнее и с меньшим числом мозолей. В целом, стоит почаще задумываться,
"а не фигней ли я занимаюсь", и челленджить методы достижения цели, меняя их при необходимости.
3.
Это часть культуры размена автономности на прозрачность. Ну так уж у нас в компании заведено. Команда вправе сама определять свои задачи, приоритеты. Потому что именно команда лучше всех знает свой домен, и как в нем преуспеть. Уровень автономности позволяет определять методы достижения цели самим. Но взамен - нужно уметь объяснить, как именно мы это делаем, как наши задачи контрибьютят в целевые метрики, и сходятся ли ожидания по эффекту с реальностью.
Тут важно еще уметь
"обналичивать" эффекты от задач. Особенно, если речь о большом, долгосрочном и комплексном проекте. Тут лучше избегать реализаций в духе
"пан или пропал", когда по окончании проекта либо ты получаешь outstanding результат, либо
"просчитались, но где". Полезно делить проект на вехи так, чтобы промежуточные результаты уже начинали приносить пользу. И по этим промежуточным эффектам корректировать план.
Мысли в этом после инспирированы (а местами - целиком украдены) рассказом моего коллеги Никиты - CPO клиентского продукта Лавки.
Никита серьезней, чем кажется, а еще он ведет классный канал, в котором делится своей мудростью, но не слишком давит софистикой.
Братский рекомендасьон - @nikita_tolstoy
Яндекс - уже не торт. Яндекс -
кондитерская. И в ней есть много отделов - торты, конфеты, пирожные, и даже ЗОЖ-десерты. Каждый найдет себе сладость по вкусу. Кому-то поддерживать уровень сахара в организме необходимо для здоровья. Для кого-то - это guilty pleasure.
Кто-то просто любит пожрать. Но в кондитерской все - счастливы.
А теперь представьте себе, что каждый отдел принимает только свою
валюту. Торт можно купить только за рубли. Конфеты - только за доллары. Пирожные - за вкладыши из жвачек турбо. Странное дело, не так ли? Вы вроде пришли за тортом, но в процессе резко захотели конфет - придется уже от кассы бежать в обменник за долларами.
Притом, строго нового образца, старые не примут.
Так исторически сложилось, что раньше с собеседованиями в Яндекс было примерно так же. Разные подразделения требовали разный набор интервью, и кандидатам приходилось проходить несколько кругов, чтобы претендовать на позиции в разных уголках нашей компании. Но недавно все изменилось - появился единый процесс найма разработчиков во все 90+ сервисов.
Набор интервью теперь един,
и кандидату известно максимальное возможное количество и содержание предстоящих этапов, а зависит только от профессии. Питон-разработчик проходит один сет интервью вне зависимости от целевой команды. Техлид/сеньор - другой, но тоже единый. Кажется, это очень крутое изменение.
А еще результаты успешных технических секций теперь действуют аж
два года - если с первого раза что-то не срослось, можно попробовать позже снова, притом, если кандидат хочет потом попробоваться на более высокую позицию, ему нужно будет допройти только недостающие секции.
Как я уже писал ранее,
алгоритмы все еще нужны. Нет, правда нужны. Что не отменяет секции прикладного кодинга.
Вайб-кодинг практикуем, но на собесах лучше обходиться
своей головой.
Нет,
нас не заменит ИИ, и
промтп-инженеров пока не нанимаем.
От тимлидов все еще ожидаем
написания кода, но еще важнее -
technical excellence в команде.
Для более всесторонней оценки компетенций
подробно говорим про опыт.
А объективность повышаем через
ревью секций.
Стажеров, кстати, тоже нанимаем!
Вакансии, по-прежнему, тут - ждем вас!
Питон Это не только 3-4 метра ценной кожи, но и прекрасный язык программирования
(душноту "вообще-то Пайтон!" отпустим в форточку).
Мое отношение к этому языку изменилось лет 8-9 назад, когда мы впервые попробовали поднять
высоконагруженный бекенд на питоне. До этого в опыте команды было только скриптоложество да несколько не столь удачных экспериментов с рантаймом. Считалось, что на нем можно делать несложные и небольшие фуллстек-поделки джанго-стайл.
А тут кто-то рассказал, что py3 с async-await и, соответственно, aiohttp на uvloop, в целом, в состоянии держать приличные нагрузки. Что ж, пришлось
пробовать. Снова из соображений
"а что это у нас все плюсы да плюсы", мы засучили рукава и за несколько дней создали сервис, названный котопсом. Кажется, вдвоем с Сашей. Думаю, он работает и по сей день
(котопёс, не Саша. Хотя, Саша тоже работает).
Забегая вперед, скажу, что сервис постигла судьба, удивительно похожая на
первый мой гошный сервис - он остался
единственным питонячим сервисом в команде, но с мейнтенансом уже было получше - туда не гнушалось лезть уже 3-4 коллеги. Потому что питон хоть в какой-то степени знают примерно все.
Если я не ошибаюсь, именно с этим сервисом произошел интересный
казус. Его мы заводили в новой на тот момент системе оркестрации деплоя. И при заведении окружения для продакшна я допустил в названии опечатку. Ладно, думаю, удалю и создам правильно. Но удаление, как ни пытался, не сработало. Что ж, пусть остается так, пускаем нагрузку. И следующие несколько месяцев сервис работал нормально.
Осенью какого-то там года (2018 или около того) я свалился с орви или гриппом. Лежу с температурой, сплю. Звонок - мониторинг. Еще звонок - коллеги. Спрашивают, а где котопес? В смысле где, в продакшне. А нету. Просто пропал.
Сон при температуре 39, но нет - не сон. Оказывается, у оркестратора деплоя, действительно, была сломана функция удаления окружения в течение нескольких месяцев. И тут они ее починили. А она пошла
разгребать очередь накопившихся задач. И просто удалила окружение, которое все это время было уже боевым.
Но вернемся к самому питону. Прелесть этого языка в низком
пороге входа, а также в том, что почти все его уже знают. Как говорил наш прежний СТО -
"любой плюсовик - питонист". Ну просто так сложилось. Особенно, если у вас на питоне тесты, автоматика и прочее - волей-неволей его знает вся команда. Конечно, чтобы на нем писать более суровые штуки, нужно более серьезное погружение и опыт, но приобретаются они проще, чем для многих других языков.
Кстати, если вы относитесь к питону
серьезно, или хотите на него перейти (скажем, с голанга, потому что не следите за модой),
заглядывайте на митап Pythup -
27 ноября в Екатеринбурге
(если вы почему-то не в Екб, то будет онлайн). Обсудим тренды, новые подходы, решения и вызовы индустрии в неформальной обстановке.
А если вы уже и так клёвый -
у нас есть вакансии питон-разработчиков.
Этот ваш хваленый ИИ ничего не может То там, то сям рассказывают про новые версии гпт-подобных чатов. Куча новых возможностей, прорывные фичи, новое поколение - все пироги. Дай, думаю, все же попробую задать ей пару обывательских вопросов, вдруг осилит. Может оно и правда развивается, а я давно не пробовал попользоваться. Как бы не так!
Мы тут с Лёхой думаем над внешкой нашей бэхи - то ли менять цвет, то ли оставить как есть, но добавить цветные акценты.
Попросил дать мне картинку конкретной модели авто в конкретном цвете. Рисует не тот цвет. Прошу поправить - отвечает "я не могу создавать изображения, зато могу помочь составить промт в другую нейронку". Что, блин? Это точно самая умная и универсальная модель? Вы можете себе представить в 00-х, чтобы поисковик на запрос "купить пластиковые окна в москве" вам отвечал "я такое искать не умею, но вот вам запрос покруче, дуйте с ним в другой поисковик - "+окна пвх|пластиковые +купить где:москва""?
Я уж молчу, что в этих промптах куча галлюцинаций - выдуманных деталей, не соответствующих исходному запросу, или просто фактологических ошибок (например, мне аи в промте написал, что е30 - это хэтчбек). И даже когда я в картиночную нейросеть вставил тот самый промпт, удалив из него самый бред, результат получился просто не туда. Полное несоответствие промпту (была просто е30 без всех тех деталей, которые напридумывал аи). И нафига все это было?
Ладно, есть отдельный режим рисования картинок. Вот только диалоговый режим у него не такой умный, как у текстовой модели, и мои подсказки он, собака, полностью игнорирует, рисуя вообще не то что нужно. Я ему как мог объяснял, что хочу получить. Вот почему тот же запрос в обычный поиск по картинкам находит релевантные образцы (в нужной стилистике, но не та машина), а сгенерить такое по уточненным требованиям мы не можем, не.
В общем, может, это я староват и туповат для того, чтобы правильно пользоваться АИ-чатами. Но мне казалось, что они как раз созданы для того, чтобы понимать естественную речь, а не только выверенные промпты. Я ж обычный обывательский запрос ввожу, что тебе, собака, не нравится? Очень горит, простите.
П.С. Сегодня рубрику #лёха_строит_бэху пропускаем, так как не хватило времени позаниматься бэхой на этих выходных. В субботу был в командировке, а в воскресенье отмечали Лёхин ДР с семьей (кстати, ему стукнуло 8, можете поздравить в комментах, я передам).
"Знал бы прикуп - жил бы в Сочи" Именно с этой поговоркой криминальных элементов советского времени Сочи ассоциируется и сейчас. Потому что, по-прежнему, многие хотят тут жить. Оно и понятно - тепло, море, кайф.
Я вот, условно говоря, прикуп знаю, и жить в Сочи мог бы. Но не буду, в столице как-то привычней. А вот приехать хотя бы разок за год на недельку пожить тут - за милую душу (
уже упоминал об этом тут). Семья чиллит, я работаю, а вечерами и по выходным - можно куда-то прогуляться или съездить.
Строго говоря, люблю я не Сочи, а Сириус и Розу. Сам Сочи/Адлер все же имеет некоторый характерный колорит, который мне не близок. Вот и сейчас в конце октября провел 10 дней в Сириусе. Тут классный офис - тихий, размеренный. Классные кафешки - в 2019 мы даже дали кодовое имя "сулугуни" проекту, который тут запускали. Классная погода - в Москве уже противненько, а тут всегда приятно. Классная природа - море, горы, водопады и даже чайные плантации.
Вот мой топ мест, достойных внимания (точно многое забыл, но сходу так):
Природа:
- гора Ахун (сейчас, правда, башня на ремонте, а без нее смысла нет, но однажды она откроется вновь)
- Воронцовские пещеры (доступно, красиво, цивильно)
- траверс-тропа от Вершины 2200 до Розы Пик (требует определенной выносливости)
- тисо-самшитовая роща (очень приятная тропа, не требует особой подготовки)
Развлечения:
- Сочи Парк (серьезно, не хуже диснейлендов-юниверсалов!)
- галереи старого краснополянского шоссе (нужно брать квадрики/багги)
- санаторий им Орджоникидзе (не знаю, как сейчас, а раньше надо было лезть через забор и убегать от охраны)
- поющие фонтаны в олимпийском парке (я к такому равнодушен, но ребенок в восторге, и они круче дубайских)
Поесть:
- ЛаТерраса (тот самый жареный сулугуни)
- Яблоки печем (колоритно)
- Fish bone (вкусно и не особо дорого)
- Техникум (Роза), Клёво (Сириус) - хоть и московские сети, там хорошо.
Отели:
- Сочи Парк Отель (хорошая инфра на территории)
- Brevis apartments (если все же в старом Сочи - топовый вид с верхних этажей)
- Mio apartments (очень приличные квартирки недорого)
А у вас какие рекоммендации по местам в Сочи?
И, конечно, всегда нужно брать авто в прокат. Мне уже много лет приходит на помощь легковушка-рф. Не реклама, правда классные ребята с супер-гуманным прайсом и человечным отношением к клиенту. У них автопарк по большей части состоит из старых недорогих тачек, но теплых-ламповых. Я успел у них покататься на Lada Largus, Hyundai H1, Chevrolet Uplander, Ford Explorer, Toyota Camry Solara кабриолет, Cadillac CTS, Opel Astra кабриолет и Renault Fluence.
В общем, съездите на недельку в Сочи, там кайфово.
Скрепы, православие, духовность... ... - теперь и в названиях брендов! Я о том, что когда зарубежные бренды начали от нас уходить, многие были импортозамещены тем же бизнесом под новой вывеской.
Сразу оговорюсь - ничего не имею против ни тех, кто остался, ни тех кто поменял вывеску. Мне - лишь бы на рынке была здоровая конкуренция и качественные товары/услуги. Смена вывесок как минимум позволяет сохранить экономику и рабочие места, продолжая что-то производить на месте ушедших.А кекаю я именно с нейминга (и то - по-доброму). Это уже практически отдельный вид искусства - как переиначить название так, чтобы и узнаваемость сохранить, и русскости добавить.
Мои любимые примеры:
Nikian tyres -> Ikon tyres (производитель шин)
Vianor -> Ivanor (сеть шинных магазинов)
Nesquik -> Хрутка (тут я вообще выпал)
KFC снова носит имя Ростислава
Кокошник на логотипе Старс кофе у экс-русалки старбакса
А какие русифицирующие переименования позабавили вас? Добавляйте примеры в комментарии.
Привет. Есть вопрос.
Hope this email finds you before I do.
.
.
Короче, к сути.
Еще какая-то незначимая строка и норм.
<И вот тут уже суть вопроса>Выше вы прочитали
лайфхак, как писать сенситив-сообщения в телегу. Поясню, в чем смысл.
Представьте себе, что вы пишете кому-то (например, коллеге Пете) весьма
сенситив-сообщение (например, "Петь, а мы уже сказали Васе, что увольняем его?"). Но вот незадача - оказывается, в этот момент Петя шэрил экран на встрече команды, а там в углу такое всплывает в нотификации. Или его телефон в переговорке лежит на столе экраном вверх, и Вася может случайно прочитать пуш. Или Петя кому-то что-то показывает в телеге, а слева в списке чатов тоже есть начало последнего сообщения. В общем, может получиться некрасиво.
Так что этот лайфхак решает простую задачу - сделать так, чтобы сенситив-текст не попал в
первые N знаков, которые могут влезть в пуш/прерид/сниппет и так далее. А шэрить телегу - вообще опасное дело. Сколько раз я из списка чатов слева узнавал то, чего не должен был!
П.С. Разумеется, весь текст из начала этого поста должен идти одним сообщением.
Бомбить каждую строчку отдельным сообщением и некультурно (кстати,
писал об этом тут ), и бесполезно - это не решит задачу.
П.П.С. Если что, фраза "
Hope this email finds you before I do" - это случайная несерьезная
гритинг-фраза, являющаяся шутливо-угрожающей аллюзией на классическую фразу делового имейл-этикета "
Hope this email finds you well".
Highload++ 2025 На прошлой неделе в Москве прошла конфа Highload++. И я там был, кофе-кейтеринг пил, по усам текло... А, не, не то.
Прошло, на мой взгляд, хорошо. Организация на площадке - отличная. Подготовка - на уровне. Аудитория - супер. ПК и волонтеры -
лапочки.
Некоторое недоумение вызывала площадка - Технопарк
Сколково для таких ивентов подходит, имхо, не идеально. Но оргам удалось из площадки выжать максимум удобства. Хотя многие залы были устроены плохо.
Чего, на мой взгляд, не хватало - так это какой-то отдельной
зоны нетворкинга. Потому что на большой площадке с огромным количеством народу порой решительно непонятно, кто из гостей в моменте открыт к нетворкингу, а кто просто спешно доедает сендвич, чтобы побежать на доклад, который вот-вот начнется. Нужна зона с табличкой "готов поболтать".
Мой доклад был последним во второй день конференции, притом в главном зале, непосредственно перед церемонией закрытия. Я тешу себя иллюзиями, что я, таким образом, был эдаким
хэдлайнером конференции (хотя на деле это, конечно же, не так). Кажется, выступил неплохо, но оценки будут доступны позже.
Спасибо организаторам за возможность, спасибо аудитории за внимание, спасибо неравнодушным за вопросы. Приятно, что люди после выступления подходили и интересовались темой, и даже писали потом в личку. Чувствуешь, что все было не зря. Когда (если?) будет видеозапись в доступе - поделюсь.
А вообще, выступать на конференциях - это классно. Спикер прокачивает навыки, аудитория получает контент. Даже если вам кажется, что ваш контент очевиден и не нов - всегда найдутся те, кому это было полезно. Главное, при подготовке доклада - почаще задумывайтесь над вопросом "
а что слушатель может забрать с собой и как применить у себя", чтобы доклад не превращался в выставку достижений народного хозяйства в духе "
смотрите, как я могу".
Со звуком "дзынь" Всем привет. Я вернулся в канал, а вместе со мной - понедельничная рубрика #лёха_строит_бэху.
Времени много не было из-за поездки и прочих дел, но мы сделали одну важную вещь -
руль.
У каждого человека, искренне любящего тачки, есть какие-то
фетиши - детали, на которые он обращает внимание, которые "делают вид" в его глазах, которые он считает важными. Например, колесные
диски. Трудно поверить, но подавляющее большинство обывателей не обращают ровным счетом никакого внимания на диски. Ну колеса и колеса, вроде круглые, что там смотреть. Кто-то считает, что диски делают 80% вида машины в профиль. Кто-то исповедует формулу "колеса+посадка" (и речь даже не о стэнсе, где колеса правда крайне важны).
Я тоже считаю диски очень важным элементом лука, но к ним мы еще вернемся. Я же от себя добавлю такой фетиш, как
руль. Рули бывают разные - стоковые, спортивные, олдовые, пухлые, тонкие, трехспицевые, четырехспицевые и так далее. И, на самом деле, вне зависимости от этих категорий, они бывают классные и не-классные. Это чистая вкусовщина, но для меня, почему-то, правда важно, как выглядит руль. Тем более, что он всегда перед тобой. Бывают классные стоковые рули, а бывают и не-классные.
Так вот у е30, как миниум в моем экземпляре, был не-классный. Сразу возникло желание его поменять. И раз уж менять, то на что-то классное. Попался мне на глаза
momo super grand prix - олдовый спортивный руль с деревянным ободом и перворированными спицами. Просто нравится. Значит - ставим.
А раз уж мы туда полезли, заодно можно реализовать давнюю фантазию -
быстросъем со звуком "дзынь". Смысла в этом искать не надо - в реальности быстросъем нужен в каркашенных тачках, где руль объективно мешает залезать и вылезать, и удобно его быстро отстегнуть и повесить на крючок. В нашем случае - просто баловство. Но не для этого ли весь этот проект?
На бумаге заменить руль - не сложно. Отковыриваем эмблему, откручиваем гайку на 21, сдергиваем руль. Далее берем адаптер для вашей модели авто, насаживаем на шлицевое (не забыв поставить бегунок сигнала и стопор блокиратора колонки), прикручиваем к нему базу быстросъема (не забыв подключить проводки звукового сигнала). Желательно перед этим всем снять клемму с аккумулятора, особенно если есть подушка безопасности в руле, иначе может бахнуть! Далее прикручиваем сам руль к ответной части быстросъема и вставляем серединку с кнопкой сигнала.
В реальности, конечно же, все оказалось куда сложнее и заняло больше часа. Но это уже можно прочувствовать только на практике, тут универсальных советов нет. И то мы не до конца преуспели - звуковой сигнал у нас не заработал, но с этим мы разберемся позже. Но - тем не менее - победа! Теперь у нас офигенный руль, еще и на быстросъеме со звуком "
дзынь")
П.С. Лайфхак: когда снимаете руль, гайку надо откручивать не до конца, а оставить ее на паре витков, чтобы когда вы таки сдернете руль со шлицов, он не отлетел по инерции вам в лоб - дергать там надо прям сильно.
Golang Олдовые плюсари типа меня по-разному относятся к голангу. Кто-то с радостью его адоптит, потому что это удобно. Кто-то
ворчит, мол, вот в наше время разработчикам хватало ума самим следить за памятью. Я же к go отношусь достаточно нейтрально. Штука точно неплохая, но
серебряной пулей, которая решит все ваши проблемы, точно не является.
Первое осознанное знакомство с этой штукой у меня случилось в 2016. Мы подумали, а что мы все пишем на плюсах, да на плюсах, давайте что-то еще посмотрим. Выбирал между голангом и растом. Посмотрел примеры hello world на обоих языках и решил, что раст слишком многословный, почти как джава. Гошка подкупила
лаконичностью. Прошел за пару часов туториал, немного почитал, потренировался на кошках, и взялся писать свой первый продакшен-сервис на го.
Почти весь сервис написал в самолете по пути в командировку, за 4 часа. На следующий день был уже в продакшне.
Однако, был нюанс. В команде больше примерно никто не горел желанием размывать экспертность и ввязываться в поддержку этого сервиса. И следующие пару лет сервисом мы занимались примерно
вдвоем с Серегой. А сервис так и остался единственным гошным среди нескольких десятков плюсовых сервисов команды
(окей, был еще 1 питонячий).
Но были и позитивные моменты. Примерно через год после запуска мы перевозили этот сервис в другой оркестратор деплоя. И с некоторым удивлением обнаружили, что я при запуске забыл прикрутить к сервису
вотчдог. Выходит, за ~год сервис ни разу не падал.
Непривычно)Спустя много лет мы уже в Еде начали масштабный адопшен голанга. Среди прочего этот мув должен был облегчить боль с долгим и сложным
наймом плюсовиков.
Спойлер: драматически не облегчил, хороших инженеров все еще трудно искать. А вот сейчас и в Лавке размышляем над применимостью гошки.
Что в голанге точно хорошо - так это низкий
порог входа, что облегчает перекатывание из других языков. И в плане плюс-минус универсального дополнительного языка, и при переходе с языков, доживающих свой век (пхп, перл, прочая
архаичная нечисть).
И в каком-то идеальном мире можно было бы ожидать, что спустя время голанг станет
единым и единственным языком, на котором будет программировать весь мир, без барьеров и зоопарков технологий.
Хотя все мы помним Вавилонскую башню, так что это не точно.Зато для тех, кто уже связал свою жизнь с гошкой или планирует это сделать, 1 ноября в 13:00 в нашем офисе и онлайн пройдет
Яндекс Субботник по go. Залетайте! В уютной атмосфере обсудим всё, что волнует Go-сообщество: от свежих релизов и инструментов до архитектурных решений и производительности сервисов.
Bar raising Еще один тип секций, который я начинаю проводить - это Senior Bar Raiser. Отличительная особенность таких секций - я не общаюсь с кандидатом. Задача SBR - вдумчиво
отревювить все остальные секции и вынести свой авторитетный вердикт.
Я нанимаю людей уже лет 10. Провел порядка 400 технических секций и штук 300 финалов. Принял решение о найме пары сотен человек, о не-найме - и того больше. Годами вычитываю все секции всех людей в свою команду, да и в соседние тоже. И, кажется, научился неплохо видеть в них
суть между строк. Интервьюверы обычных секций, зачастую, не имеют большого опыта и насмотренности, и могут ошибаться в вердиктах. Моя задача - собрать в голове целостную картинку о кандидате.
Тип секций Bar raising помогает повысить объективность оценивания и скомпенсировать неопытность некоторых интервьюверов. Где-то можно снизить вес очевидно случайно проваленной секции (дали слишком лютую задачку, или она просто не зашла, хотя по прочим секциям скилл виден), а где-то, наоборот, не допустить откровенно
компромиссный найм (при наличии ред-флагов, которые бар-рейзер видит с высоты своего опыта, или если все секции пройдены прям "на тоненького").
Приведу несколько примеров
ред-флагов, которые может усмотреть бар-рейзер в анамнезе кандидата:
- джоб-хоппинг (частая смена мест работы, на каждом месте <~1 года)
- в прошлом году кандидат уже собеседовался и прошел все секции крайне слабо, а в этом - очень хорошо -> подозрительно
- человек уже трижды проходил цикл собесов и стабильно валит какой-то вид секций (например, архитектуру)
- в коде секций остались ошибки, не замеченные интервьювером (не то чтобы я всегда перепроверяю код, но по многим задачам вижу сходу)
- задачи решены в упрощенной формулировке или неоптимально (например, не-инлайн в задачах, где интересно проверить работу с памятью, строками, итераторами)
- даны слишком простые задачи, а вердикт необоснованно высокий, а также прочие огрехи выставления вердикта вроде ложной импликации
- переоценка сложности/значимости проектов из опыта (кандидат очень уж красиво продал что-то несущественное, а интервьювер купился)
- неумение внятно объяснять свое решение (будь то решение текущей задачи на секции с кодом, или выбор технологии в разговоре про опыт)
- расхождения опыта и навыков (например, по резюме писал на с++ последние 10 лет, а на кодовой секции плавает в синтаксисе, объясняя тем, что давно на плюсах не писал)
- множественные упоминания различных интервьюверов о нечитаемости кода, либо его неоптимальности, либо неумении отдебажить - в целом любой некритичный огрех, повторенный трижды на различных секциях - это уже тревожный сигнал
- сквозящяя через все секции поверхностность, хаотичность, неуверенность, непоследовательность, сумбурность
- расхождения опыта, секций и профиля поиска (например, опыт на шарпах, нанимаем на плюсы, а секции проходил на питоне - вот как по ним судить?)
- скорость роста и перспективы (если кандидат с 15-летним опытом едва тянет на мидла - есть сомнения, что он дорастет до сеньора)
- недостаточность сигналов (например, вообще никак не проверяли архитектуру у сеньора)
И многое другое.
В целом, ни один из них обычно не является поводом для отказа. Но если их собирается штук 5, это точно повод нехило
задуматься.
А мы продолжаем повышать объективность и прозрачность процесса собеседования. И если
прошлый пост про TDD не убедил вас попробовать свои силы, вот вам еще один знак.
А вакансии, по-прежнему, тут.
"Ква", или почему не горят стопы. Вчера снова развлекались в формате #лёха_строит_бэху.
0. Для начала нужно было "оживить" Лёхин
комбез, чтобы он смотрелся солидней. Купил все около-автомобильные нашивки, какие нашел на Маркете, жена их пришила/приклеила, получилось, по-моему, здорово. Не так здорово, как мой форвардовский, но тоже хорошо.
1. Начали с простого - поменяли
коврики в салоне. Там, как водится, были унылые резиновые коврики. Признаюсь, ненавижу эти
кровостоки. Ковер должен быть ковром - ворсовый, пушистый, мягкий, уютный. Такие и купил, и вот - положили. Выбор ковров для e30 на маркетплейсах был невелик - 1 вариант - и тот не полностью подошел по форме, но пока и так сойдет.
2. Вторым пунктом плана на эти выходные была замена
воздушного фильтра двигателя. Вроде все просто - 4 защелки, 2 болта и крышка снята. Но к ней подходит такое количество трубок и проводов, что снять ее, на самом деле, почти нереально. Однако, отвести достаточно, чтобы вытащить фильтр, оказалось возможным. Но вот незадача - новый фильтр совершенно не такой, как старый по форме. Лоханулся, думаю. Однако, дома открыл оригинальный электронный каталог - там фильтр нарисован правильный (какой стоит), а по каталожным номерам бьется что-то другое (какое и купил), как будто ошибка в каталожном номере... Парадокс, буду искать теперь по фото. Тут, пока что,
фиаско.
3. Третий и заключительный пункт выходных - разобраться, почему у нас не горят
стоп-сигналы. Сначала проведем мысленный эксперимент и проследим цепочку событий. Когда я нажимаю на педаль тормоза, срабатывает датчик педали (ака "лягушка"). Далее сигнал идет через предохранитель в подкапотном блоке. Потом по проводке через всю машину электричество бежит к фонарям. Значит, проблема может быть либо в лягушке, либо в предохранителе, либо в проводке (хоть бы не в ней!), либо в фишках фонарей, либо в лампочках.
Первым делом проверили самое простое и доступное -
преды. Там, конечно, как водится - бардак. Половина предов неправильного номинала, несколько - вовсе отсутствуют. Но пред на стопы на месте и целый. Даже поставили на его место другой подходящий - не сработало. А жаль.
Дальше полезли искать
лягушку. Раскорячившись сам в позе той самой лягушки, залез с головой под педали, вооружившись двумя фонариками. Дохлый номер. Пришлось немного подразобрать обшивку под рулевой колонкой. Вот же она! Занятно, что у e30 ляшуха стоит не под педалью, а над ней, и срабатывает не на нажатие, а на отхождение педали от контакта лягухи. Ну окей. Взял раздомный провод и замкнул контакты, подходящие к датчику. Ура, стопы горят! Значит, надо менять лягушку. Вернувшись домой, залез в каталоги, нашел нужный партнамбер. К счастью, заменитель нашелся в наличии и был незамедлительно заказан.
Спустя пару часов новая лягушка уже заняла свое законное место. Стопы работают исправно, ура! И пусть это не самая громкая
победа, такие достижения нас с Лехой мотивируют. В чем-то новом разобрались, диагностировали, починили, собрали, работает - ради этих маленьких радостей и возимся.
Привет, Лавка! С этого понедельника я перешел из Яндекс Еды в Яндекс Лавку. Еда была моим домом без малого 5 лет. За это время она из около-стартапа превратилась в большой и зрелый бизнес. Когда я приходил, в Еде было всего около 100 инженеров. Сейчас - примерно в 5 раз больше. Это были очень крутые 5 лет, но пришла пора двигаться дальше. Для Фудтеха и Городских сервисов Яндекса я сейчас принесу больше пользы именно в Лавке.
Когда я переходил из Персональных сервисов Яндекса (тогда они были частью поискового портала) в Еду, меня очень драйвила оффлайновость бизнеса. Можно было делать не только пиксели на экране, но и что-то, что видно в окно, что можно пощупать, была связь с физическим миром. Это было очень интересно. Сейчас, с переходом в Лавку, offline intencifies - тут еще больше физики реального мира.
В Лавке я буду отвечать за разработку операционного продукта и b2b. Ничего не понятно, но очень интересно. Я пока сам не до конца разобрался, что мне предстоит делать, но специфика крайне занимательная. Управление складами и распределительными центрами. Заводы-пароходы и грузовая логистика. Закупки и отчетность. Промышленные устройства и физическое it-обеспечение объектов. Внешние партнеры и интеграции. Будем разбираться.
Вообще Лавка - очень душевный, теплый сервис. С классной командой и доброй миссией. Но чтобы эту миссию выполнить, нужна операционная эффективность и сильный бизнес. А для этого нужно много накодить.
Кстати, мы нанимаем)
tech tour городских сервисов Яндекса Столице-центричность конференций и митапов частенько удручает жителей других городов. Да и нас тоже. Поэтому мы в третий раз отправляемся в мини-тур по городам. В этом году, правда, только в два, зато какие! Казань и Нижний Новгород примут нас уже меньше, чем через месяц. Если вы - мидл+ разработчик или аналитик, обязательно заглядывайте на огонек!
Мы в программном комитете тура подготовили для вас классные доклады (про технологии, инфру, аналитику и архитектуру) от классных спикеров (из Лавки, Еды и Маркета), а также всякие активности (кейслаб, код-гольф и даже, прости господи, вайбкодинг). Я буду ведущим в Казани, а к нетворку открыт в обоих городах.
Тут все подробности, программа и регистрация
Back to USSR (2/2)
...Коллективная ностальгия обычно строится на очень простых бинарных оппозициях. Прошлое — чистое, здоровое и естественное. Настоящее — упадочное, разратное и порочное. Но в случае с ностальгией зумеров по СССР, как мне кажется, такого осмысленного противопоставления почти не происходит. В этой ностальгии в принципе мало осознанной идеологии, артикулированной риторики, явного политического стремления что-то возродить. Короче, мало смысла.
Главную же роль в ней, на мой взгляд, играет аффект — то есть коллективные, но не до конца осознаваемые и плохо выразимые эмоции, чувства и ощущения. Какое главное ощущение нашего времени? Пожалуй, тревога. Тревога, связанная с внешними событиями, с политическими и экономическими потрясениями, — и тревога, которая селится внутри, превращаясь в диагноз «генерализованное тревожное расстройство». Я не вижу лекарства от этой тревоги, но ностальгия предлагает что-то вроде паллиативной помощи.
Будущее, кажется, не сулит ничего хорошего: мы не знаем, сможем ли купить жилье, завести и обеспечить детей, нам незнакома стабильность и заземленность. Мы боимся ядерной войны и экологической катастрофы, а ещё — загостившего нас ситуэйшеншипа, ретроградного Меркурия и необходимости поговорить с незнакомцем по телефону. Нас могут сократить, посадить, призвать, заменить ИИ-агентом, выселить из съемной квартиры и не довезти доставку вовремя.
Конечно, так было всегда. Всегда были кризисы, всегда были перемены, к которым никто не был готов, будущее никогда не было определенным. И, наверное, всегда в эти моменты люди обращались к ностальгии.
Но сейчас обращение к ней как будто обусловлено не просто пугающим, а несуществующим будущим. Современный сай-фай раз за разом переиспользует приемы из фантастики 70-х. Классический рассказ «У меня нет рта, но я должен кричать» про сверхмощный и жестокий искусственный интеллект, уничтоживший человечество, был написан, на минуточку, в 1967 году. Наши страхи и надежды особенно не изменились за последние десятилетия. Будущее, считай, придумали в прошлом. Об этом хорошо писал исследователь культуры Марк Фишер.
Будущего нет, настоящее мучительно — а что прошлое? Мы воображаем его, переписываем, поворачиваем к себе теми сторонами, которыми хотим. И именно поэтому оно, как любая эскапистская фантазия, способно подарить комфорт. Раньше было лучше и проще: люди были честнее, любовь была крепче, всё не меряли деньгами, дети играли в футбол вместо Роблокса, пацаны держали слово, а пенопласт делали из молочной пены. Кто докажет, что было не так?
Советское же прошлое дарит не просто абстрактный комфорт. Для большинства зумеров их личное советское — это их бабушки и дедушки. То есть тепло, забота, «вкусно как дома». Дома-то уже, скорее всего, никакого и нет, его снесли по реновации. Есть коливинг, съемная комната за МКАДом, в лучшем случае — бежевая ПИКовская студия. Как тут не вспоминать пельмени ручной лепки, чехословацкую стенку и вязаную салфетку на пузатом телевизоре? Приметы застоя становятся приметами стабильности.
При этом важно учитывать тот факт, что история России в представлении ее современного жителя — обычно некий единый поток, не особенно разделенный на четкие этапы. Русское, советское (а какое советское? НЭП, 30-е, оттепель, застой, перестройка?), российское 90-х, нулевых и дальше сливаются в одно цветастое пятно. Панелька, столь излюбленная думерами и рэпером Хаски, советская или русская? А граненый стакан в школьной столовой?
Есть такое звучное слово — «палимпсест», рукопись, в которой новый текст написан поверх полустертого старого. Современная Россия написана поверх полустертого СССР. Где-то снесли памятник Дзержинскому, а где-то поставили памятник Сталину. Где-то расчистили территорию советского завода под новый ЖК, где-то открыли кафе с коврами на стенах. В сущности, может, и нет никакой ностальгии по СССР — потому что он никуда до конца не уходил.
Сама я по Союзу, в котором не жила, совсем не скучаю. Но в рюмочные с удовольствием хожу: за ершом за 150 рублей и варениками с сулугуни — за 250.
Back to USSR (1/2) В последние годы стал все чаще замечать некоторый
ренессанс Совка, особенно среди зумеров. Молодежь романтизирует социалистическое прошлое нашей страны и в целом прется по ретро-теме. В моде нейминг с отсылками к СССР, soviet-style аутфит и Лариса Долина. Вернулось даже такое явление как коммуналки (зумеры их еще называют ко-ливинг).
Я сам в осознанном возрасте Страну Советов не застал, зато хорошо помню то, что от нее
осталось в 90-х. И что-то обратно нифига не хочется. Однако, один из трендов возрождения советского наследия я принимаю. Это, конечно же, гастрокультура.
В первую очередь -
чебуреки. В советское время это была простая закуска. Но в пост-советской России чебуреки стали совсем уж третьесортным джанк-фудом из привокзальных ларьков. Уважающий себя человек не стал бы таким питаться. Имидж этого блюда граничил с
маргинальностью. К счастью, сейчас чебуреки совершили обратный разворот над Атлантикой, и я этому рад.
Конечно, вынужденно появились некоторые
фэнси-девиации типа чебуреков с крабами и артишоками, с креветками и вешенками, щукой и жареной капустой (не выдумываю - переписываю из меню реального заведения, откуда частенько заказываю). Мода - она такая, движется не по кругу, а по спирали, и виток 202х вынуждает к экспериментам. Но классический чебурек остается собой - с crispy тестом, нежным мясом и соком, стекающим по пальцам.
Другие гастро-явления тоже вернулись - вареничные, пельменные, пышки, рюмочные и прочие. И это классно. Не то чтобы я был
"за скрепы" и
"против буржуйских бургеров" - в вопросах гастрономии я как раз за максимальную
diversity (сам люблю и тако, и пибимпаб). И вообще, русская кухня сейчас на подъеме. Притом особенно - на востоке страны (на примере Байкала и Красноярска - там в этом году я побывал в нескольких ошеломительно-вкусных ресторанах русской кухни с Сибирским колоритом).
О том, откуда сейчас взялся в целом этот культурный феномен любви ко всему советскому, я спросил у самого настоящего зумера, журналистки, редактора и автора
Екатерины (по совместительству - моя сестра, так что не скупитесь на реакции и комментарии!). Вот, что она рассказала:
⤵︎⤵︎⤵︎
Technical Deep-DiveНедавно упоминал, что в процессе собеседований бывает трудно определить уровень кандидата в случае противоречивых сигналов. Например, олимпиадник задачки нарешал на сеньора, но опыта 0, не брать же его на сеньора. А разработчик-техлид с 20-летним стажем, наоборот, быстро щелкать задачки разучился, и прошел секцию на мидла, хотя реального опыта и навыков у него огого (впрочем, придумывать алгоримты все равно уметь должен -
писал про это ранее). И если второй кейс неплохо покрывает архитектурная секция, то для первого у нас не так давно появился такой тип интервью как Technical Deep-Dive, который я также недавно стал проводить.
По сути это разговор, который строится вокруг одного из проектов в анамнезе кандидата, и он должен помочь
отличить теоретические изыскания от реального опыта. Кандидат вправе выбрать любой проект из своего недавнего прошлого (не более 3 лет назад, чтобы еще достаточно хорошо его помнить). Проект должен быть достаточно масштабным (3-6 месяцев работы). Роль кандидата на проекте должна быть значимая (важно, чтобы К принимал там решения). И чтобы на этом проекте кандидат проявил какие-то важные качества в области архитектуры, проектирования, командной работы, работы с продуктом и сроками.
Мне, как интервьюверу, больше всего интересно,
что именно в проекте человек сделал сам. Какие решения принимал, почему выбрал ту или иную технологию, как продумывал внедрение, за какими метриками следил. Откуда задача пришла и в какой постановке, какой был контекст. Что удалось предусмотреть заранее в вопросах дюрабилити и обзервабилити. А что потом пришлось переделывать.
В процессе разговора мы
углубляемся в те или иные детали, обсуждаем плюсы и минусы технологий, архитектурных паттернов. И если кандидат, действительно, проявил на этом проекте недюжинные навыки и действовал грамотно - это дорогого стоит. А если на деле он там "рядом постоял", а решения принимались с мотивировочной частью в духе "так исторически сложилось" - это сразу заметно.
Еще несколько лет назад при собеседовании в Яндекс
опыт почти не играл роли - больший вес имели кодовые секции. Новый подход с TDD призван это изменить, и я верю, что уже скоро эта секция будет зачастую играть решающую роль в найме сильных и опытных ребят. Проводят ее те, кто может реально оценить ее, регламент зарегулирован, оценивание прозрачно. Так что если вы - сильный и опытный разработчик, но боитесь посыпаться на алгосах и получить лишь оффер джуна - считайте, что это знак все же попробовать пройти секции.
Вакансии тут
Ужин при свечах Давайте рассуждать логически. Сегодня понедельник. Понедельник идет после выходных. Выходные - время для семьи. Половина семьи у меня сейчас увлечена попытками разобраться в автомобилестроении. (Это мы с сыном, а жена с кошкой пока не очень вовлекаются.) А значит, сегодня рубрика #лёха_строит_бэху.
За прошедшую неделю сделано немногое, но и мы не спешим. Во-первых, удалось
поставить машину на учет. Для этого пришлось дважды съездить в Люберцы. Люберцы и так - дыра, да еще и пробки, к тому же машина не вполне исправна - вообще так себе приключение.
Зато за эти (суммарно) 8 часов за рулем нашего кадавра появились
новые пункты списка дел по техничке. Например, починить тормоза, потому что педаль проваливается. И починить стартер, потому что заводится авто в среднем с третьей попытки. И это не так бесило бы, если бы она хотя бы не так часто глохла на ходу. Так что еще надо поднастроить джетроник на горячую. А еще первая передача нормально втыкается только с месте, иначе угрожающе хрустит.
Во-вторых, мы
поменяли свечи. Больше в тренировочных целях, но и, как будто, пропусков зажигания стало меньше. Это было увлекательно. В начале (а начали мы спереди) все было легко и забавно, свечки менялись играючи. Снять со свечи высоковольтный провод, подсунуть торцевую свечную головку с удлинителем, насадить трещотку, открутить, достать трещотку и головку, вынуть свечу, заложить новую, наживить, снова засунуть головку, трещотку, закрутить, надеть провод - все шло подозрительно легко. Даже 3-4 цилиндры, где мешает расширительный бачок, дались почти вслепую. Но с каждым цилиндром саспенс только наростал, пока не достиг кульминации - шестого цилиндра.
И вот мы подобрались к нему. Я сразу его побаивался, так как понимал, что этот
босс по зубам не каждому. Как водится, задний цилиндр в продольных рядных шестерках - хуже монстра под кроватью. Добраться до его свечи - это из области занимательной проктологии. В тесном пространстве между блоком, моторным щитом и аккумулятором, по локоть в трубках и проводах, ты вслепую пытаешься кончиками пальцев нащупать, куда совать ключ, и при этом было бы здорово не выронить свечу. Это будет пострашнее Фауста Гёте. Но было бы глупо поменять только 5 свечек, так что - как обычно - глаза боятся, а руки в масле. Совместными усилиями мы сдюжили. Тонкие детские руки весьма неплохо предназначены для извлечения свечей из колодцев, всем рекоммендую.
Почему я его изначально боялся? Да потому что
уже проходил этот уровень. И в прошлый раз он попил немало моей крови. Почти 10 лет назад у меня уже была бэха - e90 на n52b25, и там я тоже менял свечи. С другом, во дворе, под пенное. В тот раз у нас ушло больше 4 часов и предприятие не увенчалось полным успехом (стемнело, да и пенное дало о себе знать). В n52, к тому же, для доступа к 5-6 цилиндрам нужно было разобрать кучу всего, включая жабо. Но тот опыт меня многому научил, и в этот раз я на опыте действовал уверенее, работали на спокойняках.
В-третьих, мы решили не упускать момент удобного доступа в камеры сгорания и залезли туда
эндоскопом. Просто потому что это прикольно. Кто не знает, эндоскоп - это маленькая камера с лампочками на длинном жестком проводе, которую можно засунуть в труднодоступные места и посмотреть, что там творится.
Институт травматологии напоминает: эндоскоп - это промышленное оборудование, и он не предназначен для исследования естественных полостей организмов человека и домашних животных. Осмотр показал, что цилиндры в полном порядке - стенки без задиров, хон естественный, нагара минимум, грязь-пыль-стекло-бычки отсутствуют. Приятно.
Эти приключения нас весьма утомили, так что на этом мы, истерзанные шестым цилиндром, закончили упражнение. To be continued.
Традиция Как сказал один умный человек - "
один раз - случайность, два раза - совпадение, три раза - традиция". Так что считаем, что мы зафиксировали традицию ездить определенным составом (численностью 7 человек) на этапы RDS GP, побывав на финальном этапе этого года на MRW.
Вообще, целево - традиция должна заключаться в том, чтобы ездить на этапы в другие города. В прошлом году это был Питер, в этом - Красноярск
https://t.me/vit_ded/77. Так что, чтобы закрепить традицию именно в целевой постановке вопроса, нам еще предстоит в следующем году съездить в Нижний. Как только объявят расписание - приступим к исполнению. Но пока хотя бы выбрались на третий совместный этап в Подмосковье, что уже неплохо, тем более что полный состав собрался почти спонтанно.
По тренду этого года, сухим этап не был. Но нам повезло (уж как минимум по сравнению с Красноярском) - в воскресный день дождя почти не было, так что в этом плане кайфануть удалось больше. Не могу сказать, что было прям много мясных заездов, но было хорошо. Вообще я не очень люблю MRW - трибуны далековато от гоночной дорожки, да и конфиг не самый эпичный. В этом плане я люблю Мячик и Крас. Зато на MRW удобная логистика и близко сервис-парк (из минусов - команды больше торчат в закрытых боксах, нежели в палатках).
Результаты порадовали.
Чемпион этапа - Гоча, чемпион сезона - Царь. Сибиряки снова показали, кто тут главный в российском дрифте.
Шабанов продолжает показывать уровень. Мне он импонирует своей скромностью и всеядностью - он может ехать на любой машине в любом состоянии и показывать результат, не оправдываясь внешними факторами.
Ну и молодежь радует - Поповы уже явно конкурируют с топами, Тимофей и Гроссман выстреливают, Тиводар и Шнайдер обогнали многих старичков. Уверен, через 1-2 сезона они станут костяком пелетона.
Всем дрифт!
Кто такие аналитики? Мы, разработчики, плохо представляем себе, кто такие аналитики. Лишь догадываемся, что есть там продуктовые аналитики, эмэльщики, слышали буквы DS, DL, DWH, BI. Но чем же они все на самом деле занимаются? Про это я поболтал с нашим верховным аналитиком
(CDO) Ильей.
Согласно его классификации, существует 2 типа команд - партнерские команды и команды эффективности.
Партнерские команды прикреплены к конкретному бизнес-направлению, их основная задача -
улучшать качество принятия решений в своем бизнес-направлении. Нужно осмыслить и проанализировать фичи, а также проактивно
генерировать новые инсайты, что нужно сделать, чтобы метрики росли. Эти команды работают в связке с менеджером - вместе ищут гипотезы роста метрик.
В этих командах работают
дата-аналитики. У них много
экспертизы в своем домене - события и метрики, взаимодействие и корреляции метрик, много контекста и бизнес-специфики домена. Все это важно консолидировать в их умах. Они пишут развесистые sql-запросы, строят дашборды, дизайнят эксперименты, помогают принимать решения, придумывают гипотезы. Кроме хардов в этой профессии очень ценится бизнесовая и продуктовая
интуиция, понимание бизнес-части, умение доносить свои идеи до бизнеса.
Команды эффективности обычно оунят какую-то часть системы. Как правило, это специфичный для домена
алгоритм: назначение курьеров для логистики, таргетирование скидок для ресторанов, рекомендательная модель для продукта. Их задача - придумывать новые идеи для роста домена, поддерживать его, оптимизировать, повышать качество решения задачи на длинной дистанции. Эти команды отвечают за показатели своих метрик напрямую перед бизнесом.
С точки зрения профессий, в командах эффективности обычно работают
Data Scientist-ы и
ML-разработчики. Data Scientist - это такой аналитик, которые сначала очень много
анализирует данных и/или
обучает модельки, а потом пишет несложный (по меркам бекенда) код, чтобы это заработало. Бывает, что это код в рантайме, иногда - в облачной платформе вычислений, а еще бывают пайплайны для выполнения формул или моделей. ML-разработчики - пишут
продакшен-сервисы с мл-функциональностью и обучают мл модельки, но не так глубоко копаются в данных.
В командах эффективности data scientist-ы и ml-разработчики по сути отличаются хардами, в зависимости от используемого
инструментария. То есть суть одна - нужно развивать
алгоритмический продукт, используемый в твоём домене, а инструменты разные - у одного это аналитика и формулы, у второго - классический ML, у третьего – нейросети.
А есть еще
AI. Это направление пока только формируются с точки зрения очерченности профиля профессии. На деле этим всем занимаются энтузиасты из числа аналитиков, дата-саентистов, млщиков и даже бекендеров.
Потому что AI - это не профессия, это направление. Возможно, оно по итогу стандартизируется и станет чем-то более обособленным (и не надо про промпт-инжиниринг - мы все же тут про серьезные вещи говорим).
А еще есть
DWH и BI. Там системные аналитики переводят с бизнесового на дата-инженерный - разбираются, где какие данные и как их готовить. Дата-инженеры знают, как эффективно написать sql-запрос и провернуть сложные операции над данными, как построить риалтайм-процессинг данных или миграцию базы. BI-щики строят дашборды для эффективной проверки гипотез и создают инструментыдля других команд. Тут чуть более
инженерная специфика - они не закапываются в бизнес-домен, а оперируют данными и их структурами. DWH редко работает с бизнесом напрямую, для них заказчиками выступают аналитики, которые сконнекчены с бизнес-функциями.
Из рассказа Ильи становится понятно, что это целый мир.
"Скажи, Илья, зачем людям идти в аналитику?" - спросил я. Он ответил так:
"Миссия аналитики - это с помощью данных, технологий и неординарных решений наносить непоправимую пользу бизнесу."А если вы чувствуете, что вам это близко -
добро пожаловать, вакансии тут
Кабардино-Балкария На прошлой неделе
ездили с коллегами в Приэльбрусье. Однозначный лайк.
Кабардино-Балкария прекрасна. Потрясная природа, милейшие люди, вкусная еда. В целом лучше гор могут быть только горы, а любые горы - прекрасны. Кавказ очень доступен, и там есть все, что нужно - заснеженные вершины, живописные ущелья, масштабные плато, туманные долины. Максимальный рекомендасьон. Особенно плато Канжол.
Отдельный кайф - это ездить большой компанией в несколько машин. Шуточные обгоны, подколы по рации, обдавание друг друга грязью из-под колес - даже рядовой перегон можно превратить в приключение. Ну а традиция "бросить" в облаке пыли сломавшихся друзей в духе путешествий топ гира - вообще святое.
Ездили на почти стоковых nissan pathfinder на лифте и грязевой резине. Для той местности этого вполне достаточно. Зато независимая подвеска комфортней на перегонах, чем лютые мостовые монстры типа патрулей. Съезжая с асфальта травились в 1атм, и этого было достаточно, чтобы ехать по любой грязи вообще без проблем, даже несмотря на отсутствие блокировок. Более того, я полный привод то включил лишь раз, перед затяжным мокрым подъемом с поворотом. Пафик - отличный выбор, если не нужно преодолевать совсем уж жесть.
Самое сложное было - найти компанию организатора тура, кто пускает клиентов за руль (а мы хотели непременно сами преодолевать весь путь). Я написал в ~15 фирм. Никогда еще меня за утро не посылало столько человек. Спасибо ребятам из Южной Экспедиции, что поверили в нас (и, надеюсь, не пожалели) [не реклама, правда классные ребята. Талят, Аслан, Залим - вы крутые!] и провели по Приэльбрусью с максимальным кайфом. У них такой опыт тоже был впервые, и наши гиды сами недоумевали, что они могут не рулить, а торчать в окне с пивом и тоже получать удовольствие.
Ну и спасибо моим коллегам за прекрасную компанию, было супер душевно!
Ездите с друзьями и коллегами в путешествия, открывайте новое, наслаждайтесь красотой гор и сплачивайте коллектив, превозмогая вместе.