Hard&Soft Skills
СтатистикаЦентр экспертизы для опытных инженеров и архитекторов в IT https://hardsoftskills.dev Курсы: Технический лидер Solution Architect CTO Starter Pack Участвуйте в мероприятиях https://hardsoftskills.dev/calendar Чат: @chathardsoftskills
- Последний пост
- 14 авг.
- Последнее чтение
- 06:46
- Постов за неделю
- 3
- Всего постов
- 21
- Тип
- открытый
- Язык
- русский
- Категория
- Курсы
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- 973
- 1/48двое суток
- 1 115
- 1/72трое суток
- 1 202
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Техлид или архитектор: где заканчивается команда и начинается система Техлид стоит вплотную к коду и к команде и отвечает за качество исполнения внутри своего периметра. Архитектор мыслит системой целиком или крупным доменом: его предмет – связи между частями и их эволюция. Разница в уровне, на котором человек работает. 🛠 Техлид: команда и её код Периметр – одна команда и её сервисы, горизонт – недели и кварталы. Предмет решений: структура модулей, выбор библиотеки из одобренного стека, стратегия тестирования, порядок рефакторинга. Влияние идёт через личное присутствие: ревью, дизайн-сессия до написания кода, разблокировка. Код он пишет: прототипы, инструментарий, сложные баги, но фичи на критическом пути не берёт. Измеряется предсказуемостью поставки команды, DORA-метриками и ростом людей. 🌐 Архитектор: система целиком или крупный домен Периметр – домен, который переживёт любую конкретную команду, горизонт – кварталы и годы. Предмет решений: границы сервисов, контракты между доменами, эволюция модели данных, consistency-модель, где и как хранятся данные. Влияние идёт через артефакты, которые работают, когда его нет в комнате: ADR доменного уровня, fitness-функции в CI, целевая картина эволюции. Измеряется тем, держит ли система заявленные характеристики через год и как быстро команды принимают решения без него. По Ларсону этот архетип обычно проявляется, когда организация дорастает до сотни инженеров; до этого архитектурную работу делают техлиды. 🚪 Тест на обратимость Уровень проверяется стоимостью отката. Решение откатывается силами одной команды за спринт – оно техлидское, two-way door. Нужно координировать три команды и мигрировать накопленное состояние – архитектурное, one-way door. ♻️ Правило Фаулера Ценность архитектора обратно пропорциональна количеству решений, которые он принимает лично. Архитектор, который централизует всё важное, потому что не доверяет командам, у Фаулера называется Architectus Reloadus. Рабочая модель – растить команды до уровня, на котором они забирают сложные решения себе. ⚠️ Две ловушки перехода Техлид пытается остаться самым сильным разработчиком команды: PR копятся в ожидании его ревью, дизайн-решения задерживаются, и через три месяца команда зависит от него сильнее, чем до назначения. Архитектор отрывается от технической работы команды: контакт с реализацией вытесняется стратегической и организационной активностью, и со временем репутация архитектора вымывается. Признаки – разработчики тихо обходят рекомендации, кодовая база расходится с официальной архитектурой, команды перестают спрашивать про детали. 🎯 Свой уровень и следующий шаг Разметьте решения месяца: периметр, горизонт, стоимость отката. Спринт и своя команда – техлид; годы и чужие команды – архитектор. Наверх ведёт кросс-командная задача, закрытая артефактом. 📆 Если разметка показала, что вы застряли между уровнями – 25 августа в 19:00 (GMT+3) проводим открытый митап [Рост после сеньора в эпоху ИИ], online. Разбираем стеклянный потолок сеньора, диаграмму навыков и уровни компетенций, роли техлид / тимлид / архитектор, архитектора эпохи ИИ, рынок и зарплаты, пять навыков, которые ИИ не вымывает. Ведёт Павел Вейник – Founding Architect Hard & Soft Skills, разработчик с 2003 года, ex-Architect Miro и EPAM, ex-CTO SplitMetrics, AmadoAd и Leverice. Обучил 1000+ разработчиков и 450+ архитекторов. Матрицу компетенций пришлём письмом сразу после регистрации – на митап придёте уже с ней. Вопрос можно задать при регистрации или на самом митапе, Павел разбирает персонально. 👉 Регистрируйтесь и задавайте вопросы 📚 Что почитать: "Who Needs an Architect?" – Martin Fowler, IEEE Software, 2003 "Staff Archetypes" – Will Larson, staffeng.com
Вы дошли до senior, и дальше маршрут перестал быть очевидным. Техлид, тимлид, архитектор? И куда во всё это встраивается ИИ? 📺 Разбираемся на открытом митапе [Рост после сеньора в эпоху ИИ] с Павлом Вейником. 🔥 Что разберём Что делать разработчику, когда рост по технической ветке упирается в потолок, а ИИ на глазах переписывает требования к профессии. 🔸 Стеклянный потолок сеньора: почему следующий шаг не случается сам собой. 🔸 Диаграмма навыков: уровни компетенций и точка, в которой вы сейчас находитесь. 🔸 Техлид vs тимлид vs архитектор: чем отличаются роли и какая из них ваша. 🔸 Архитектор эпохи ИИ: как ИИ меняет профессию и какие пять навыков он не вымывает. 🔸 Рынок и зарплаты: динамика по России, США и Европе. Спикер: Павел Вейник – Founding Architect Hard & Soft Skills, ex-Architect Miro и EPAM, ex-CTO SplitMetrics, AmadoAd и Leverice, разработчик с 2003 года. Обучил 1000+ разработчиков и 450+ архитекторов. Must-have для backend-разработчиков middle+, senior, архитекторов и CTO, которым нужна стратегия роста после сеньора и понимание, какие навыки останутся ценными. Матрицу компетенций пришлём письмом сразу после регистрации – придёте на митап уже с ней. Задавайте свои вопросы – Павел ответит на каждый! 🗓 25 августа в 19:00 (GMT+3) 👉 Регистрируйтесь и присылайте вопросы
Архитектурные катастрофы – часть 12: AI-агент поддержки Meta раздал доступ к 20 225 аккаунтам Instagram В марте 2026 Meta запустила High Touch Support – AI-агента восстановления доступа к Instagram. Обещание: решить проблему с аккаунтом от начала до конца, включая безопасный сброс пароля. Это происходило на фоне агрессивной AI-трансформация инженерии: цели по доле AI-написанного кода, токен-метрика в перформанс-ревью, 8 000 сокращений в мае при рекордной прибыли. 🧨 Роковое решение Агенту дали право писать в связку "аккаунт ↔️ email" напрямую. Вход – свободный текст от неаутентифицированного пользователя. Вся модель безопасности свелась к тому, сможет ли бот на глаз определить владельца. Это OWASP LLM06 Excessive Agency (избыточные полномочия агента) сразу в трёх проявлениях и классический confused deputy с одним отличием: детерминированную программу обходят кодом, вероятностную модель уговаривают словами. ⚙️ Эксплойт в четыре реплики Атакующий заходит через VPN в регион жертвы и пишет боту. 🔸 "Это мой аккаунт «victim», привяжи мою почту" 🔸 Бот шлёт код подтверждения на почту атакующего 🔸 Атакующий вводит код обратно в чат 🔸 Бот показывает кнопку сброса пароля Ноль кода. Пошаговые видео разошлись по хакерским Telegram-группам. Спасала только 2FA – даже самая слабая, по SMS. 💥 Кульминация Атака началась 17 апреля, Meta обнаружила её 31 мая – через 44 дня. Integrity-команда Instagram, по данным The Pragmatic Engineer, узнала о взломе из новостей. По уведомлению Meta Генпрокурору штата Мэн – 20 225 захваченных аккаунтов; сама Meta называет цифру верхней оценкой. Под угрозой оказались переписка, история активности и профиль: в том же документе Meta пишет, что не располагает информацией о том, к каким персональным данным реально обращались. С архивного аккаунта Белого дома эпохи Обамы и с аккаунта мастер-сержанта Космических сил США постили проиранские сообщения. 2 июня директор по безопасности (CISO) Гай Розен объявил об уходе после 13 лет в компании. 🔍 Разбор полётов 🔸 Что пошло не так: система не проверяла, что email, на который уходит ссылка сброса, привязан к аккаунту. Одна отсутствующая строка сравнения. 🔸 Почему это произошло: чувствительную операцию поставили за вероятностный гейт (автоматическую проверку), который продавливается промптом. Кто написал этот код, Meta не комментировала; The Pragmatic Engineer со ссылкой на инженеров Meta пишет, что писал и ревьюил AI. 🔸 Как надо было: детерминированный гейт перед модификацией identity-полей, подтверждение по отдельному каналу и human-in-the-loop как базовое требование. 🙃 Ирония Статья Meta про собственную систему авто-ревью RADAR вышла 28 мая – на 41-й день эксплуатации, за три дня до обнаружения. В её гейтах прямым текстом: authentication bypasses дисквалифицируют дифф из авто-аппрува и отправляют его человеку. Инцидент случился ровно в логике аутентификации. Инженерное решение у Meta было. Прошёл ли тот дифф через воронку RADAR, неизвестно – постмортема нет. 📌 Три урока 🔹 Код-ревью нельзя полностью отдавать агентам. AI-ревьюеры находят 15–31% от того, что находят люди, на реальных PR F1 падает до 0,066. Security бизнес-логики – ровно та категория, где они ловят хуже всего: нужен контекст всей системы. 🔹 Убрать у AI-ревьюера право мёржить. По телеметрии PanDev Metrics (вендорское исследование, 23 847 PR) авто-аппрув отгружает на 46% больше дефектов в продакшен, чем работа вообще без AI. 🔹 Агент не идёт в продакшен без строгих рамок и человека в контуре. AI не отвечает на вопрос "стоит ли это выкатывать прямо сейчас?" – для этого нужно знать, что система несёт и каков радиус поражения. Стоимость разработки упала. Стоимость ошибки осталась прежней. 📚 Что почитать: Смотрите наше короткое видео об этом инциденте в Instagram Meta AI Support Tool Incident – AG Notification (Maine), 5 июня 2026 – формулировка корневой причины из первых рук. Automating Low-Risk Code Review at Meta: RADAR – arXiv 2605.30208.
Код-ревью – ботлнек внедрения AI Написание кода невероятно ускорилось. Обложившись агентами, можно написать код для целого проекта за пару дней. Но вычитать, проверить и исправить его – задача, которую AI не всегда можно поручить. Получается, что пропускная способность разработки теперь упирается в то, сколько дифов в неделю команда способна реально прочитать. 📈 Ботлнек в цифрах Телеметрия Faros AI 2026 по 22 000 разработчиков: при высоком уровне внедрения AI размер PR растёт на 51%, медианное время до первого ревью – на 157%, медианное время в ревью – на 441%. Доля PR, смёрженных вообще без ревью – ни человеческого, ни агентского – выросла на 31%. Количество инцидентов на PR – более чем втрое. Формулировка отчёта: "Ревьюеры не медленные. Они завалены". Экономика перевернулась: junior с агентом генерирует код быстрее, чем senior способен его критически прочитать. Бюджет глубокого чтения у senior-инженера – несколько часов в день, и он не масштабируется закупкой лицензий. Разрыв не сокращается по мере взросления внедрения: инженерная зрелость щитом не работает. 🎯 Цена ускорения Apiiro на выборке Fortune 50: синтаксические ошибки в AI-коде упали на 76%, простые логические баги – более чем на 60%. Зато пути повышения привилегий (privilege escalation) выросли на 322%, архитектурные дефекты – на 153%, утечки облачных учётных данных – примерно вдвое. AI чинит то, что и так ловит линтер, и производит то, что ловится только человеческим чтением. Veracode: в 45% случаев модель выбирает небезопасную реализацию из OWASP Top 10, и показатель не улучшается ни с ростом модели, ни со временем. AI-ревьюер эту дыру не закрывает: он читает код, который существует. Требование, которое никто не догадался записать, он практически никогда не подсветит. 💥 Amazon попробовал убрать Компания поставила цель довести внедрение AI до 80% и заявила цель сэкономить $2 млрд. Но потом произошла серия крупных инцидентов: 🔹 Декабрь 2025. Агенту Kiro поручили мелкий фикс в AWS Cost Explorer. Агент решил, что оптимальный путь — удалить и пересоздать окружение. Он работал с унаследованными от инженера повышенными правами, обошёл правило двух подписей и выполнил удаление. Итог — 13-часовой простой сервиса в одном из китайских регионов. 🔹 2 марта 2026. Некорректное время доставки в корзинах, ~120 000 потерянных заказов; в качестве основного контрибьютора называют Amazon Q. 🔹 5 марта 2026. Шестичасовой сбой в Северной Америке, падение объёма заказов на 99%, оценочно ~6,3 млн потерянных заказов. Деплой ушёл без формальной документации и аппрува. 🔹 10 марта 2026. SVP Дейв Тредуэлл созывает обязательную встречу руководства. Внутренние документы ссылались на тренд крупных инцидентов, связанных с «Gen-AI assisted changes». Ответ – обязательное ревью двумя людьми для всех изменений в проде Tier-1 систем и подпись senior-инженера на AI-изменения от junior/mid. 🔧 Как расширять пропускную способность Ботлнек лечится тем, что через него проходит меньше мусора, а больше решений принимает автоматика: 🔹 Стиль, форматирование, нейминг – в линтер и OPA-политики (Open Policy Agent – политики как код), с запретом на человеческие комментарии в этих категориях 🔹 Низкорисковые обратимые изменения – в быстрый путь по модели Ship / Show / Ask 🔹 PR-контракт на входе: что и зачем, вывод тестов, уровень риска, доля AI-кода 🔹 AI-преревью как фильтр без права финального аппрува 🔹 Лимит одновременно открытых агентных PR на человека – очередь разгружается раньше, чем в неё добавляют новое Человеческое внимание концентрируется на 20% изменений, которые несут архитектуру, кросс-сервисные контракты и большой радиус поражения. 📚 Что почитать: "AI Engineering Report 2026: Acceleration Whiplash" – Faros AI "Comprehension Debt" – Addy Osmani
За что в 2026-м увольняют CMO, CRO и CHRO – и почему цена управленческой ошибки выросла в 6 раз? 🎙 Делимся анонсом коллег: 20 августа в Минске пройдёт форум C-Level Days: "Новая реальность в IT и B2B" – 250+ руководителей ИТ и B2B-компаний, 24 спикера из 6 стран. 🔥 Что разберут Экспериментальные находки года в управлении, продажах и выходе на внешние рынки – без слепой веры в AI-автоматизацию. 🔸Девальвация управленцев: как меняются функционал, контроль и заработок руководителей sales, marketing и HR. 🔸 "Некролог холодному аутричу": экономика доверия через Dark Social и сообщество. 🔸 ИИ на практике: какие инструменты принесли пользу, какие оказались бесполезными, и кто отвечает за ошибки ИИ в СНГ и ЕС. 🔸 Международные рынки: трезвый взгляд на MENA 2026 и архитектура партнёрской сети. Спикеры: Тамара Кулинкович и Юрий Сорокин, Юрий Шиляев, Сергей Сметюх, Татьяна Игнатовская и другие эксперты. Полезно тем, кто вырос из инженерных ролей в управление командой, продуктом или бизнесом. 📍 20 августа, 10:00, Минск, отель "Виктория Олимп" 🌐 21 августа – онлайн-день мастер-классов 👉 Программа и регистрация
Стеклянный потолок сеньора: почему ты застрял Если ты senior, то, скорее всего, сейчас ты делаешь работу, которую пять лет назад делал staff-инженер: системный дизайн, продуктовые развилки, ответственность за надёжность. Как расти дальше всё ещё не понятно, – стеклянный потолок сеньора никуда не делся, просто планка выросла. 🧩 Роль сеньора поглотила то, что было выше 🔹 Junior-слой схлопнулся: найм новых выпускников в крупных техкомпаниях упал примерно на 65% по сравнению с 2019 годом. 🔹 Слой над сеньором истончился: менеджеров становится меньше, архитекторов было немного всегда. 🔹 Команды сжимаются: Gartner ждёт, что к 2029 году 60% организаций перейдут на команды по 4–5 человек. Работа снизу и сверху перераспределилась на середину. К сеньору спустились архитектурные развилки, которые раньше были на техлидах, staff и principal инженерах. Туда же ушло владение надёжностью, прямой разговор с бизнесом и приёмка кода, который разработчик не писал сам. 🧱 Потолок остался на месте, сместилась шкала Senior – это уровень, на котором организация перестаёт ждать от тебя движения. До него дорасти обязательно, а дальше уже по желанию. 5 лет оставаться мидлом – сомнительно. 5, 10 и даже 15 лет быть senior – это вполне нормально. Структура вокруг прежняя: до Staff и выше добираются единицы – порядка 3% инженеров в больших компаниях, а у большинства компаний формальной ступени выше senior нет вообще. Планка техлида выросла синхронно. Теперь нужно всё большее погружение в задачи бизнеса, всё шире зона ответственности, и всё больше влияния на процессы. Отсюда асимметрия: обязанностей становится больше, и сами они становятся всё более высокоуровневыми, а дальнейшее продвижение по карьере становится ещё более туманным. 🚀 Пробивается потолок ровно как раньше 🔸 Ответственность за исход. Проси во владение метрику. Готово наступает в момент, когда измерено, что проблема перестала происходить. 🔸 Единица отчётности. "Построил кеширующий слой" читается как senior. "Нашёл проблему задержек трёх продуктовых команд, предложил общую стратегию кеширования, скоординировал раскатку и снизил p99 на 40% по организации" – как staff. 🔸 Инициатива. Замкнутый круг: ответственность уровня техлида не дают, пока ты не техлид. Значит, её создают: найти проблему без владельца, написать документацию (проблема, её цена в числах, решение) и довести до результата. 🔸 Демонстрация. Решение о повышении принимают люди, которые не следят за каждым твоим достижением. У них в подчинении, вероятно, ещё пара десятков инженеров, не говоря о других управленческих задачах. Всё, что у них есть, – результаты работы команды. 🗺 Где взять карту Сегодня в 19:00 GMT+3 встречаемся на открытом митапе [Технический Лидер]. На митапе вместе с Павлом Вейником обсудим: 🔹 Подробнее поговорим о стеклянном потолке сеньора 🔹 Разберем обновлённую матрицу навыков инженера, и как она изменилась за последние годы 🔹 Посмотрим, что творится на рынке IT в 2026 году 🔹 Ответим на все вопросы участников 👉 Регистрируйтесь и оставляйте свои вопросы До встречи на митапе! 📚 Что почитать: "The reality of being a senior engineer" – LeadDev "Staff Engineer: Leadership beyond the management track" – Will Larson
AI с фундаментом и без: почему ценность грамотного техлида не падает, а растёт с автоматизацией Middle с агентами выдаёт код, который по сути не отличим от кода сеньора и техлида: идиоматичный, хорошо названный, согласованный с тем, что есть вокруг. Получается, ИИ всех уравнял, и теперь разница между грейдами только в опыте? Разберемся вместе. 🎯 Выравнивается только написание кода Прирост от ассистентов распределён неравномерно: в эксперименте Microsoft на 1700 разработчиков у менее опытных он выше, чем у senior. Прирост есть там, где критерий правильности тривиален: компилируется, проходит тесты, делает то, что просили. Дальше начинается работа, где "готово" означает архитектурную согласованность, поведение под нагрузкой и обратимость изменения, – и там прирост исчезает у того, кто не может такой критерий сформулировать. 🧠 Где именно AI перестаёт помогать Неопределённость по решению модель закрывает отлично. Неопределённость по критерию правильности – "как мы поймём, что это верно" – она не закрывает. Это невозможно сделать без понимания системы, домена и последствий. Инженерный фундамент – это способность сузить второе до проверяемой формы. "Сделай лучше" превращается в "тест X зелёный, контракт Y не изменился, вот команда, которая это доказывает". 🧭 Зачем техлид нужен теперь 🔸 Видеть систему на уровень выше изменения – что от него зависит, что под нагрузкой, что при откате, что через три года. Модель оптимизирует удовлетворение запроса и сама этих вопросов не задаёт. 🔸 Продумывать наперёд и декомпозировать – агент наследует границы системы или их отсутствие; нехватку структуры он по своей инициативе не компенсирует вопросами и интуицией, как это делает человек. 🔸 Брать риск релиза на себя – агент готовит план, код, тесты и описание PR, решение о приемлемости риска остаётся человеческим и подкреплённым доказательствами. 🔸 Договариваться с соседними командами, продуктом и бизнесом – посредников между инженером и продуктовым решением стало меньше, требований к аргументации больше. По сути – ничего не изменилось. 🧱 Фундамент теперь набирается тяжелее Как было раньше: год-полтора на шаблонном коде и рутинной отладке рядом с наставником, потом несколько лет самостоятельной работы на разных проектах, углубление в свой домен, – и вот, уже к тебе начинают приходить с вопросами "а как тут сделать лучше?". Теперь половина этого пути уже автоматизирована. Вооружившись Claude Code, любой мидл сам может сделать "как лучше", даже если не в полной мере понимает, почему оно именно так. Контролируемый эксперимент Anthropic на 52 инженерах, преимущественно junior-уровня, показывает цену автоматизации рутинных задач: время выполнения задачи с ассистентом меняется слабо, а понимание только что использованных концепций проседает, сильнее всего – на отладке. Удерживали знание те, кто просил объяснения и сам разбирал ошибки. 🛠 Что развивать в себе 🔹 Понимание задач бизнеса: "что" и "как" делает код уходит на второй план – это LLM может сделать хорошо. Разработчику теперь важнее понимать "почему", чтобы принимать верные решения и давать агентам правильные вводные 🔹 Код-ревью агентов и людей: Самостоятельно писать код уже практически не нужно. Фокус смещается на тщательный разбор того, что выдает LLM. Важно смотреть не только то, что поменялось, но и что от этого зависит, что под нагрузкой, что при откате, как это влияет на систему в целом 🔹 Критическое мышление: AI очень хорошо умеет давать правдоподобные, но неверные решения. Отлавливать их до того, как они попадут в прод – важнейшая задача 📚 Что почитать: "AI doesn't create great developers, it amplifies them" – LeadDev "How AI assistance impacts the formation of coding skills" – Shen & Tamkin, Anthropic
Tech Lead – даже не официальная должность. Как туда попасть? Во многих компаниях техлид – это вообще не строчка в оргструктуре и не грейд. Это ответственность, которую senior берёт на себя сам. 🧭 Роль, которую исполняют до назначения Техлид – самый опытный сеньор, первый среди равных. Прямой власти над командой у него часто нет: сначала ты делаешь работу техлида, и только потом её формализуют. Инженеры, которые ждут "корочку" лида, чтобы стать лидером, редко её получают. По данным JobLabs, внутреннее повышение до техлида успешно в 80%+ случаев, а внешний найм на ту же роль – примерно в половине. Команда доверяет тому, кого уже видела в деле. Техлидами не становятся просто потому что пора. Переход почти всегда сопровождается масштабной инициативой – переписыванием системы, новыми практиками, сменой культуры разработки. Ты берёшь что-то большое и неблагодарное, доводишь до результата на глазах у команды, и должность закрепляет то, что ты уже делаешь. 📊 Смена метрики: с личного output на команду Пока ты измеряешь себя объёмом работы, которую выполнил сам – ты senior. Техлид измеряется пропускной способностью команды: скоростью, качеством, предсказуемостью деливери, ростом инженеров. Alex Mayhew предлагает конкретный маркер – соотношение код-ревью. У senior это примерно 1:3 (одно ревью на три своих PR), техлид целится в 3:1. Начни считать другое: сколько инженеров разблокировал, сколько RFC написал, сколько чужих PR отревьюил. Фокус смещается с личного output на impact – насколько быстрее едет вся команда благодаря тебе. 🎯 Что реально считывает менеджмент На уровне техлида компетентность предполагается по умолчанию. Есть четыре сигнала лидерства: 🔹 Mentoring – сделал ли ты других инженеров измеримо лучше (так, что менти сам назвал бы тебя) 🔹 Influence without authority – менял ли ты направление работы, которой не владел на бумаге. Подготовить документацию или прототип за выходные и протолкнуть своё решение – это влияние 🔹 Incident ownership – кем ты был во время хаоса: кто вёл коммуникацию, писал постмортем, протащил структурный фикс недели спустя 🔹 Strategic direction – увидел ли ты, куда команде двигаться, и сделал ли неблагодарную работу по движению туда ⚠️ Главные способы застрять 🔸 Ждать назначения вместо того, чтобы начать вести за собой 🔸 Качать только hard skills, игнорируя делегирование, коммуникацию и ответственность за команду 🔸 Остаться героем-кодером: сеньор растёт через персональное мастерство, а зона техлида – практики и масштаб всей команды. Тот, кто в одиночку вытаскивает каждый проект, превращается в bus factor 1 🔸 Принимать все решения самому и ревьюить каждый коммит – так ты сам становишься ботлнеком 🚀 Что делать прямо сейчас 🔹 Развивай команду прямо в потоке работы. На код-ревью предлагай не только правки, но и лучшие подходы к задаче – так ревью превращается в обучение. 🔹 Определи стандарты: требования к тестам, гайдлайны по стилю, шаблоны компонентов – в одном месте, под рукой у всех. Проводи внутренние tech talks и совместные разборы архитектуры. 🔹 Параллельно фиксируй решения письменно: одностраничное техническое направление команды (включая то, чего вы явно НЕ делаете), RFC, decision records. Так влияние видимо, а контекст сохранён для распределённой команды. 🔹 Возьми неблагодарную работу – кросс-командную координацию и инциденты: там куётся лидерство. А потом проведи разговор с менеджером: "я два месяца оперирую как техлид, вот импакт – как это формализовать?". 🎙 Продолжим обсуждать роль техлида вживую? 4 августа в 19:00 (по Минску, online) Павел Вейник, ex-Architect Miro и EPAM, проводит митап [Технический Лидер] – про стеклянный потолок сеньора и путь из senior в техлиды и архитекторы. 👉 Регистрируйтесь и присылайте вопросы 📚 Что почитать: "The Manager's Path" (глава 3, Tech Lead) – Camille Fournier "From IC to Tech Lead" – Alex Mayhew
АНАТОМИЯ ФИЧИ: Как YouTube считает просмотры Число под роликом читают миллионы раз в секунду, и от него зависят деньги авторов. Разбираем, как устроен счетчик просмотров на YouTube. 🔬 Требования к системе 🔹 Одни Shorts дают ~200 млрд просмотров/день (2025): ~2,3 млн записей/сек в среднем, миллионы/сек – норма, десятки млн/сек на глобальных пиках. Вся платформа поверх этого – ещё больше. 🔹 Число читают на каждый показ страницы: миллионы чтений/сек, P99 < 10 мс, чтение не ходит в durable-хранилище. 🔹 Точность критична – за просмотрами стоят деньги, но задержка в часы допустима: публичное число сходится с внутренней аналитикой за 24–48 ч. ⚙️ Как это работает 🔹 Порог засчёта просмотра. Long-form – ~30 сек воспроизведения (неофициально), Shorts с марта 2025 – с первого кадра. Публичный счётчик и оплата – разные числа: Shorts оплачиваются по метрике Engaged views, long-form монетизируется через monetized playbacks и RPM. 🔹 Верификация в два прохода. Событие пишется в durable-лог, база не трогается. Сначала просмотр засчитывается сразу, потом идет верификация: уверенные (реальные люди) проходят почти мгновенно, сомнительные уходят в карантин и досчитываются позже. Отсюда эффект, когда под видео 10 тысяч просмотров, в аналитике 8 тысяч, а монетизация приходит за 5 тысяч. 🔹 Фильтрация накрутки – по сигналам: watch-duration, идемпотентность (окно ~24 ч), IP velocity, replay rate. Дешёвый скоринг синхронный, тяжёлый – отложенный batch. 🔹 Батчинг и шардирование. Счётчик шардируется, чтобы горячий ключ вирального видео не упёрся в один поток; уникальных зрителей считает HyperLogLog. Источник истины – Bigtable (IncrementColumn по строке), а зрителю число отдаёт Procella из кэша. 🧬 Почему именно так 🔸 Hot row. Строго-мгновенное число требует синхронной записи в одну строку: в Postgres это row-lock, MVCC-мусор и fsync-потолок в единицы тысяч инкрементов/сек. Против миллионов событий/сек это не вариант – отсюда Bigtable на LSM-дереве без локов. 🔸 CAP. Strong consistency оплачивается доступностью и скоростью. YouTube выбрал eventual – отсюда и допустимая задержка, и оконная агрегация с кэшем. 🔸 Два контура на одну сущность. Публичное число – быстрая приближённая валюта. Деньги идут медленным пайплайном: сессионизация, привязка к ad-показам, фильтрация invalid traffic, выплаты до 90 дней. Estimated-доход в Analytics отличается от finalized в AdSense – один "просмотр" несёт два разных SLA. 🤝 Тот же паттерн в других системах 🔹 TikTok – щедрый засчёт: порог ~1 сек, автоплей и каждая петля дают новый просмотр. Деньги – по qualified views (уникальные из FYP, ≥5 сек, без фрода), обычно 30–60% от публичного числа. 🔹 Instagram Reels – с конца 2024 Meta свела всё к метрике Views: reel засчитывается при показе на экране ~0,1 сек, "загрузилось – значит просмотр". 🔹 Netflix Distributed Counter – единственный счётчик с публичным first-party-разбором: на EVCache и eventually consistent поверх Cassandra с фоновым rollup. В целом, структура похожа на YouTube. Один паттерн у всех: два числа на одну сущность – быстрое публичное под масштаб, строгое денежное под точность и аудит. 📚 Что почитать: Наше короткое видео на эту же тему "How Netflix Built a Distributed Counter" – ByteByteGo "Procella: Unifying serving and analytical data at YouTube" – VLDB 2019
AI-инструменты давно перестали быть экспериментом и стали частью ежедневной работы. Вопрос только в том, на каком ты уровне. 🚀 На следующей неделе мы стартуем два курса по работе с AI. Вместе они покрывают весь путь от основ промпт инжиниринга до создания production-ready LLM-систем. 🔹 Level 1 – [AI-Driven Development] Для разработчиков (Backend/Frontend/Fullstack), DevOps, QA automation и аналитиков с опытом от 1–2 лет, которые хотят встроить AI в ежедневную работу. 🔸 AI IDE: Cursor, Windsurf, Copilot и настройка под свой стек. 🔸 MCP: публичные серверы и собственный – для своего проекта (pet-проект или рабочий код). 🔸 Zero-code UI: генерация интерфейсов через v0, Bolt, Lovable. 🔸 Автоматизация: ревью, тесты, документация, агенты в n8n. Преподаватель: Сергей Голубев – Product Manager & AI Creator, 16+ лет в IT. 🗓 Старт 27 июля 👉 Записаться на Level 1 🔹 Level 2 – [Продуктовая AI-разработка] Прямое продолжение Level 1. Для инженеров с опытом от 2 лет и техлидов, которые выводят LLM-продукты в продакшен. 🔸 Кастомные MCP, RAG и мультиагентные системы на LangGraph. 🔸 Evals и Observability: тесты качества и трейсинг. 🔸 FinOps и Security: контроль расходов и защита от атак. 🔸 Курсовой проект: собственная multiagent-система. Преподаватели: Сергей Голубев и Павел Вейник – Solution Architect и сооснователь Hard & Soft Skills. 🗓 Старт 29 июля 👉 Записаться на Level 2 Level 1 – если хочешь ускорить свою работу готовыми инструментами. Level 2 – если строишь LLM-продукты для продакшена. До встречи на курсах!
МИФ: "Чистый код по канонам Clean Code = быстрый код" Логика соблазнительная: раз "хороший код" хорош по всем осям, то полиморфизм вместо switch, маленькие функции и сокрытие внутренностей делают систему заодно и быстрой. Но в горячих циклах, которые крутятся миллионы раз, эта интуиция ломается: там всё решает физика процессора. ❌ Миф Следуй правилам Clean Code – полиморфизм вместо ветвлений, прячь внутренности объектов, дроби на маленькие функции – и получишь код одновременно поддерживаемый и производительный. "Чистота" ничего не стоит во время исполнения. ✅ Реальность Правила Clean Code, которые влияют на структуру исполняемого кода, системно душат производительность на горячих циклах. В феврале 2023 Кейси Муратори (Handmade Hero) взял пример из самой Clean Code-литературы – иерархию фигур с виртуальным Area() – и замерил суммирование площадей массива: 🔹 полиморфизм ("чистая" версия): ~35 циклов на фигуру; 🔹 switch + плоская структура: ~24 цикла, в 1.5 раза быстрее; 🔹 табличная диспетчеризация (table-driven): 3.0-3.5 цикла, ~10x. Формулировка Муратори: отказ от полиморфизма стирает 3-4 года эволюции железа, а table-driven – уже 12-14 лет. 📖 Откуда взялся этот миф Clean Code Роберта Мартина стала догмой индустрии, а "polymorphism > switch всегда" – её символом веры. Правило родилось в мире, где узким местом считались вычисления. Но главное узкое место современного процессора – память: оперативная память в сотнях циклов от исполнительных блоков, промах кеша стоит дорого. Учебники ООП считают, что лишний уровень косвенности (индирекция) бесплатен. На деле за него платит железо – промахами кеша. 🔍 Доказательства 1️⃣ Массив указателей на полиморфные объекты ломает аппаратный предзагрузчик (prefetcher): промах кеша почти на каждый элемент, а указатель на таблицу виртуальных функций (vptr) раздувает объект и вытесняет полезные данные из строки кеша. 2️⃣ Главный ущерб – невозможность встроить вызов (заинлайнить). Компилятор не видит тело виртуальной функции и теряет оптимизации: свёртку констант, разворачивание циклов. В бенчмарке japreiss конкретная версия развернулась в цикл (2.86 цикла), виртуальная осталась на 11.52 – разница 4x. 3️⃣ Науку подтверждает Data-Oriented Design (проектирование вокруг данных): Wingqvist et al. (IEEE GEM 2022) – до 13.25x на игровой симуляции за счёт непрерывных в памяти данных вместо объектов (SoA против AoS). 💡 Что делать на самом деле Обратное "чистое = всегда медленно" тоже ложь. Значительную часть замедления снимает компилятор (final, LTO, CRTP, std::variant), а упор в процессор (CPU-bound) в бизнес-софте редко оказывается реальным ограничением: 99% кода живёт на <1% процессора, и там когнитивная нагрузка важнее сэкономленных тактов. Практика: раздели систему на модули по требованиям к задержке. 🔸 Для обычной логики – Clean Code религиозно. 🔸 Для горячего участка, который выявил профилировщик, – раскладка данных в памяти (data layout), SoA, статическая диспетчеризация. 🔸 Не меняй полиморфизм на switch рефлекторно: сначала попробуй final/LTO/CRTP. И профилируй перед оптимизацией: смотри perf stat и P99, не среднее. Проектируй как собор, оптимизируй как механик на свалке – но только в моторном отсеке. Знать, где что, и есть инженерная компетенция. 📚 Что почитать: Casey Muratori – "Clean" Code, Horrible Performance (computerenhance.com) – первоисточник со всеми замерами. Переписка Muratori ↔️ Uncle Bob (github.com/unclebob/cmuratori-discussion) – образец инженерного спора о том, что оптимизировать.
Вы дошли до сеньора – и уперлись в потолок. Что дальше: техлид, архитектор, или ИИ вообще перекроит эту карту ролей? 🎯 Разберём по полочкам на открытом митапе [Рост после сеньора в эпоху ИИ] с Павлом Вейником. 🔥 Что разберём Как устроен рост после сеньора и какие навыки реально ведут в техническое лидерство, когда ИИ меняет правила игры. 🔸 Стеклянный потолок сеньора: почему он возникает и как выйти за его границы. 🔸 Диаграмма навыков: маршрут middle → senior → techlead → architect на одной схеме. 🔸 Роли без путаницы: чем техлид отличается от тимлида и архитектора. 🔸 Архитектор в эпоху ИИ: выбор моделей, векторных баз и агентов. 🔸 Пять навыков, которые ИИ делает только дороже: и семь лет динамики рынка 2019–2026 – зарплаты, дефицит, где хайп, а где данные. Спикер: Павел Вейник – Founding Architect Hard & Soft Skills, ex-Architect Miro и EPAM, разработчик с 2003 года. Обучил 1000+ разработчиков и 450+ архитекторов. Это must-have для backend-инженеров middle+, сеньоров, архитекторов и CTO, которые решают, куда расти дальше. Заберёте с собой матрицу компетенций, карту рынка с источниками и план действий на понедельник. А ещё Павел разберёт и ответит на ваши вопросы. 🗓 4 августа в 19:00 (GMT+3, по Минску) · online 👉 Регистрируйтесь и присылайте вопросы
АНАТОМИЯ ФИЧИ: Graceful Degradation на примере Uber. Как система решает, чей запрос выбросить? Load shedding (сброс нагрузки) выглядит бесплатным: перегрузились – отклоняем лишнее. Но отклонение – тоже работа: принять соединение, распарсить, решить, ответить. Под трёхкратной перегрузкой наивный шеддинг сжигает CPU на отказы, goodput уходит в ноль, и система стабильно живёт в этом состоянии. Uber уткнулся в это и построил Cinnamon. 🔬 Поверхностный слой – что наблюдаемо Сервис под Cinnamon держит 300 % перегрузки при росте p50 на 50 %. Скачок с 3 000 до 6 500 RPS: доля сброса ползёт до ~75 % и выходит на плато за 10 секунд, разброс в стационаре ~10 п.п. и дальше не растёт. Тот же сервис на CoDel/AIMD осциллирует между "отклоняю всё" и "не отклоняю ничего", разброс раздувается до ~30 п.п. Без шеддинга – death spiral: инстансы валятся по health-check, автоскейл не успевает. ⚙️ Средний слой – что такое Cinnamon 6 tiers × 128 cohorts = 768 приоритетов. 🔹 Tier – бизнес-критичность: t0 – критичная инфраструктура, t1 – онлайн-трафик пользователя (заказать поездку), вниз до t5 (фоновое обновление карты). Приоритет ставится на edge и едет в context по всей цепочке вызовов. 🔹 Cohort – шардинг по пользователю, идея заимствована у WeChat. Надо сбросить 5 % трафика tier 1 – сбрасывается один и тот же набор пользователей на всех сервисах цепочки. 🔹 Rejector – сравнивает приоритет запроса с атомарным порогом. Оверхед ~1 микросекунда. 🔹 PID-контроллер – раз в ~500 мс пересчитывает долю сброса по истории за ~30 секунд. 🧬 Глубокий слой – почему так 🔸 Почему когорты. Если каждый из 5 хопов независимо сбрасывает свои случайные 5 %, пользователь получает 1 − 0,95⁵ ≈ 23 % отказов вместо 5 %: некогерентный шеддинг перемножает вероятности по цепочке. Когорта делает решение детерминированным – отвергнутый на первом хопе отвергается и на пятом, остальные проходят цепочку целиком. 🔸 Почему PID. CoDel смотрит только на текущее состояние очереди и потому качается между крайностями. PID помнит историю и находит стабильную долю сброса – отсюда плато за 10 секунд. 🔸 Почему 1 мкс важнее алгоритма. Шеддинг обязан быть дешевле работы, которую он спасает. Иначе congestive failure: throughput после его включения падает ниже, чем был до. 🤝 Сброс нагрузки в других системах 🔸 Meta Defcon – единица деградации это knob: фича с именем, владельцем и oncall. Уровни L1–L3, цели 5/10/20 % экономии ресурсов. Дёргает человек, реакция – минуты. 🔸 Netflix – 4 корзины по модели Linux tc-prio плюс фолбэки. Инцидент 2024: сброшено больше 50 % запросов, playback держался выше 99,4 %. 🔸 Google – criticality как first-class-поле RPC-стека с автопропагацией и adaptive throttling на стороне клиента: клиент сам перестаёт слать. 🔸 Amazon – отказался от фолбэков: код гниёт годами и в аварию делает хуже. Ставка на constant work и static stability: объём работы всегда одинаков, всплеску неоткуда взяться. 🔸 Envoy – adaptive concurrency: gradient-контроллер подбирает лимит по латентности. Приоритетов нет вовсе – для них нужна очередь, а очередь сама влияет на латентность. Алгоритм сброса (PID, CoDel, gradient) – верхний и самый сменяемый слой. Решение принимается ниже: что считать единицей деградации. Uber выбрал пользователя, Meta – фичу, Netflix и Google – запрос, Envoy – ничего, Amazon – постоянство работы вместо деградации. От этого выбора зависит, кто дёргает рычаг, за секунды или за минуты, и что увидит пользователь на том конце. 📚 Что почитать: "Cinnamon: Using Century Old Tech to Build a Mean Load Shedder" – Uber Engineering Blog "Defcon: Preventing Overload with Graceful Feature Degradation" – Meza et al., OSDI'23 "Enhancing Netflix Reliability with Service-Level Prioritized Load Shedding" – Netflix TechBlog, 2024
Как управлять командой, где инженеры сильнее вас технически Если каждый в вашей команде слабее вас – вы провалили основную работу лида: собрать команду, которая коллективно сильнее любого отдельного человека, включая вас. Ценность техлида и архитектора измеряется качеством решений, принятых без него. Грегор Хоупе: "Architects make more impact by making fewer decisions". 🧭 Делегируется владение решением, ответственность остаётся Архитектурное делегирование – передача права принимать архитектурно значимые решения туда, где живёт контекст. Это передача владения проблемой, раздача тикетов тут ни при чём. В команду уходят: внутренняя структура сервисов, выбор библиотек и паттернов, схемы данных внутри контекста, авторство ADR, способ достижения цели при заданных требованиях ("ответ до 200 мс, circuit breaker обязателен – как именно, ваше дело"). Не уходит никогда: 🔸 Accountability. Полномочия делегируются, ответственность за исход – нет. Решение взорвалось – вопрос в том, дали ли вы контекст, критерии успеха и право решать. 🔸 Принципы и guardrails. Собираются вместе с командой, но за их непротиворечивость отвечаете вы. 🔸 Трейд-оффы с бизнес-ценой за периметром команды. Обмен "скорость сейчас против стоимости изменения через год" требует контекста, которого у команды нет. 🔸 Разрешение тупика. Команда в клинче – кто-то должен сделать вызов и взять его на себя. Убивает делегирование разрыв "ответственность без полномочий": человека назначили ответственным, а право решать оставили выше. Дальше по учебнику – эскалации, паралич, уход сильных. 📜 Advice process: одно правило и один квалификатор Механика Эндрю Хармел-Лоу. Правило: любой человек может принять любое архитектурное решение. Квалификатор: до принятия он обязан запросить совет у тех, на кого решение существенно повлияет, и у людей с экспертизой в этой области. Согласие, консенсус и разрешение не требуются. Требуется спросить, выслушать и записать совет в ADR – включая отвергнутый, с причиной отказа. Тормоз против безрассудства встроен: ADR прочитают все затронутые. Тихо взять Kotlin, когда команда на C#, не получится. Xapo Bank – лицензированный банк, люди в 25+ таймзонах – развернул advice process, ADR и Architecture Advisory Forum. По данным ThoughtWorks: −50% time to market, −98% change failure rate, +99% MTTR. 🎚 Назовите уровень делегирования вслух Семь уровней Юргена Аппело (Tell → Sell → Consult → Agree → Advise → Inquire → Delegate) применяются к областям решений: "выбор библиотек внутри сервиса – уровень 7, изменение публичного API – уровень 5, выбор хранилища – уровень 4". Уровень определяется обратимостью и blast radius. Обратимо и локально → 6–7. Необратимо и кросс-командно → 3–4. Ваш уровень тревоги на шкалу не влияет. Если ваше мнение настолько сильное, что вы всё равно переопределите выбор команды, не изображайте делегирование. Скрытый override разрушительнее прямого "решаю сам". 📊 Работает или сломано Сигналы снимаются с уже существующих артефактов – реестра ADR, тикетов, git. 🔹 Доля решений, принятых без вас. Плоский ноль – вы бутылочное горлышко. 🔹 Reversal rate за полгода. Ниже 5% – переанализируете. Выше 20% – решаете слишком быстро. 🔹 Число ваших советов, которые команда отвергла и записала причину. Ноль означает, что вам подчиняются вместо того, чтобы с вами советоваться. ⚡️ Что сделать на этой неделе Спросите двух самых сильных инженеров: "Какое архитектурное решение ты мог бы принять сам, но ждал меня?" Ответ покажет ширину вашего горлышка точнее любой метрики. 📚 Что почитать: "Scaling the Practice of Architecture, Conversationally" – Andrew Harmel-Law, martinfowler.com "Decentralizing the Practice of Architecture at Xapo Bank" – Streets & Harmel-Law, martinfowler.com
Уже сегодня – митап [Лестница зрелости AI-разработки] с Павлом Вейником и Сергеем Голубевым. Сегодня последний день, чтобы забронировать место 🔥 Что успеете забрать 🔸 Карту маршрута от прототипа до прода и диагноз своего проекта – на какой ступени он застрял и что мешает следующей. 🔸 5 ступеней зрелости: от прототипа до enterprise, с точками отказа на масштабировании. 🔸 Пропасть прототип → продакшн: четыре причины смерти проектов – доверие, наблюдаемость, стоимость, безопасность. 🔸 Разбор кейсов вживую: n8n-флоу, агенты, контуры безопасности. Спикеры: Павел Вейник — Solution Architect, основатель Hard & Soft Skills. Сергей Голубев — Product Manager & AI Creator, 16+ лет в IT, последние 3 года каждый день собирает AI-агентов. ⏰ Встречаемся в 19:00 GMT+3. 👉 Занять место на митапе
Архитектурные катастрофы – часть 11: Toyota, баг, за который заплатили жизнями С 2002 года Toyota выкинула механический трос газа и поставила drive-by-wire: педаль больше не тянет дроссель, она подаёт сигнал в микроконтроллер, а тот через мотор открывает заслонку. Между 2009 и 2010 по США прокатилась волна жалоб на "внезапное ускорение". Отзыв 10+ млн машин, семь слушаний в Конгрессе, публичная версия – "виноват коврик и залипающая педаль". Настоящую причину нашли в суде, когда эксперт получил доступ к исходникам ECM. 🎯 Роковое решение Вся логика управления тягой уместилась в один поток RTOS, который эксперт Майкл Барр из-за секретности назвал "Task X". Этот kitchen-sink делал сразу всё: считал целевой угол дросселя, крутил круиз-контроль, выставлял диагностические коды и держал большинство fail-safe. Орган, который принимает решение открыть дроссель, и орган, который должен ловить сбой этого решения, – один и тот же поток на одном и том же CPU. Никаких независимых зон локализации отказа. 📈 Как проблема нарастала Под капотом копился долг, невидимый снаружи: ~11 000 глобальных переменных, функция расчёта угла дросселя с цикломатической сложностью >100 ("немейнтейнабельно"), ~80 000 нарушений MISRA C. Стек занят на 94% вместо заявленных Toyota 41%. Ни ECC на памяти, ни защиты памяти (MPU), ни зеркалирования критической TargetThrottleAngle. Watchdog кикался из обычного timer-tick ISR, подтверждал жизнь одной 1-мс задачи, а смерть Task X не замечал. 💥 Кульминация 28 августа 2009 года семья офицера полиции Марка Сэйлора едет на одолженном Lexus ES350. Педаль газа заклинивает, машина разгоняется до 190+ км/ч. Звонок в 911: "педаль застряла, тормозов нет". Все четверо погибают. Механизм Барр воспроизвёл на живых Camry: одно событие порчи памяти (bit flip или программный дефект) убивает Task X. Мотор дросселя держит последнее положение, педаль больше ни на что не влияет, idle fuel cut мёртв вместе с потоком, watchdog доволен, монитор-CPU ловить это не спроектирован. Single point of failure без fault containment. 🔍 Разбор полётов 🔹 Что пошло не так: смерть одного потока валила всю тягу, и все защиты умирали вместе с ним. 🔹 Почему это произошло: fail-safe жили в той же зоне отказа, что и защищаемая логика; глобальное состояние ничем не защищено; watchdog без реального укуса. 🔹 Как надо было: независимые fault-containment regions, monitor/actuator или голосование, ECC/MPU/зеркалирование для критики, watchdog с проверкой liveness каждой задачи. 📌 3 урока из этой катастрофы 1️⃣ Метрики сложности работают как аргумент перед менеджментом. Число глобальных переменных и цикломатическая сложность предсказывают присутствие ещё не найденных багов. 2️⃣ Fail-safe не должен жить в той же зоне отказа, что и защищаемая логика. Разносите принятие решения и его контроль на независимые зоны. 3️⃣ Watchdog обязан подтверждать liveness каждой критической задачи. Кик из общего таймера – иллюзия безопасности: смерть задачи снижает загрузку CPU и маскируется под "всё хорошо". Отдельный счёт пришёл за реакцию на проблему как на PR-историю: в 2014 году DOJ добавил $1.2 млрд уголовного штрафа за сокрытие. Суммарно катастрофа стоила Toyota более $3 млрд и репутации эталона качества. 📚 Что почитать: Michael Dunn – "Toyota's killer firmware: Bad design and its consequences" (EDN, 2013) – самый цитируемый технический разбор находок Барра. Phil Koopman – "Case study of Toyota UA" (Carnegie Mellon) – про FCR, watchdog и почему "не нашли дефект" не равно "дефекта нет".
Собрать AI-агента сегодня умеет почти каждый. Довести до прода — единицы. На какой ступени застрял твой проект? Вчера мы встречались, чтобы собрать AI-агента для разработки, обсудить развитие профессии инженера и научиться не наступать на главные грабли AI-разработки. Запись вчерашнего митапа уже на YouTube 📺 А уже в следующий вторник разберём открытую карту зрелости AI-разработки на митапе [Лестница зрелости AI-разработки] с Павлом Вейником и Сергеем Голубевым — плюс презентация курса Продуктовая AI-разработка (Level 2). 🔥 Что разберём Почему агент, который работает локально, ломается в проде — и на какой из 5 ступеней зрелости застрял именно твой проект. 🔸 Карта зрелости — 5 ступеней: от вайбкода до enterprise — что получаешь на каждой и где ломается на масштабе. 🔸 Пропасть «прототип → прод»: доверие, наблюдаемость, стоимость, безопасность — 4 причины, по которым проекты умирают на переходе. 🔸 Один пример на всех ступенях: сквозной ассистент-разработчик — ревьюер, тестописатель, документатор. 🔸 4 столпа production: evals, observability, FinOps, security — того, чего почти нет в AI-курсах. 🔸 Разбор вопросов вживую: принеси свой кейс — агента, n8n-флоу, контур безопасности. Спикеры: Павел Вейник — Solution Architect, основатель Hard & Soft Skills. Сергей Голубев — Product Manager & AI Creator, 16+ лет в IT, последние 3 года каждый день собирает AI-агентов. Must-have для инженеров и архитекторов, которые уже собирали агента, но упёрлись в доверие и стоимость — и хотят маршрут, а не разрозненные демо с ютуба. Пропасть между "работает у меня" и "работает в проде" — не в коде, а в доверии, наблюдаемости и стоимости. 🗓 14 июля в 19:00 (GMT+3) 👉 Регистрируйтесь и присылайте вопросы
Ubiquitous Language: почему ваш код врёт бизнесу (и сколько это стоит) Бизнес называет это "claim", в коде класс Request, аналитик пишет "обращение". Три слова про одну сущность – и каждый разговор это перевод. По данным twoday, 30–50% усилий разработки уходит на переделку из-за непонятых требований. Это translation cost – налог, который снимает Ubiquitous Language. 🧭 Единый язык – ядро DDD Domain-Driven Design ставит в центр системы доменную модель: код моделирует реальность бизнеса, оставляя структуру таблиц и удобство фреймворка на периферии. У подхода два уровня. 🔹 Стратегический – карта проблемы: единый язык, границы Bounded Context и связи между ними. 🔹 Тактический – форма кода внутри границы: entities, value objects, агрегаты, репозитории. Kia Raad: архитектура – это сцена, а DDD – сценарий и режиссёрские заметки на ней. Ubiquitous Language держит всю конструкцию. Эванс в ретроспективе сместил акценты: "Ubiquitous Language, Context Mapping и Core Domain – в центре, агрегаты на близкой орбите". Тактика без стратегии превращается в DDD-Lite: классы Aggregate и Repository, рассыпанные по кодовой базе, дают все накладные расходы без единой выгоды. Поэтому язык первичен. 🗣 Язык важнее красивых классов Ubiquitous Language – это дисциплина. Слова бизнеса становятся именами классов, методов, событий и тестов. Цель Эванса: доменный эксперт читает claim.Submit() и подтверждает поведение без переводчика. Анемичный people.Update(name, email) молчит о домене, а client.ChangeEmail() повторяет фразу "изменить email клиента". 🚧 "Ubiquitous" обманывает: язык локален Главная ловушка – единый корпоративный словарь на всю компанию: полная унификация модели большой системы нерентабельна. Слово "Product" имеет до пяти значений – оффер, покупка, позиция в заказе, триггер рибейта, объект рейтинга. Язык повсеместен только внутри одного Bounded Context. Следствия: 🔸 Глоссарии называют свой контекст: "Sales UL", "Billing UL" 🔸 На "Customer" обязаны ответить: "в каком контексте?" 🔸 Границу контекста выдаёт язык – Greg Young: ищите, где слова меняют значение 🔥 Как строить язык на практике 🔹 Event Storming до первого спринта. Соберите бизнес и инженеров. Один пишет "Order Placed", другой "Order Created" про одно событие – разногласие дешевле снять сейчас, чем когда оно станет двумя классами. 🔹 Начинайте с событий. События в прошедшем времени (InvoiceIssued, ClaimApproved) вытягивают остальной словарь. Избегайте безликих user-updated и status-changed. 🔹 Бросайте вызов расплывчатым словам. "Process", "handle", "manage" – красные флаги. "Система обрабатывает заказ" значит валидирует? маршрутизирует? считает? Термины БД и ORM держите вне домена, за Anti-Corruption Layer. ⚖️ Когда платить налог DDD Эвристика Kia Raad: если "почему это сложно" – в основном процесс и I/O, налог DDD не платите. Если это бизнес-язык и спорные правила с инвариантами – окупится. Для CRUD и команд без опыта DDD – оверкилл: неверные абстракции хуже их отсутствия. В 2024 Эванс назвал языковую модель тем же Bounded Context. AI делает перевод быстрым, но любит апгрейдить простые формулировки в "WebSocket real-time synchronization". Дисциплина языка только дорожает. 📚 Что почитать: "Ubiquitous Language" – Martin Fowler "Ubiquitous Language and Naming Strategies" – Thurley.dev
Уже сегодня в 19:00 — собираем AI-агента для разработки за 40 минут вживую 📺 Напоминаем: сегодня, 7 июля в 19:00 (GMT+3), онлайн-митап [Live demo: агент для разработки за 40 минут] + презентация курса AI-Driven Development: Level 1 (2-й поток). 🔸 Полный цикл вживую: требование → дизайн → план → деплой в прод — руками агента, а не своими. 🔸 Как обучать агента на лету: кастомные скиллы и MCP под твой стек. 🔸 Три грабли AI-разработки: и как их обходить. 🔸 Разбор вопросов вживую: от Сергея Голубева и Павла Вейника. Если ещё не зарегистрировались — самое время. 👉 Записаться на митап
Искусство говорить "Нет": защитить своё время и не сжечь отношения Публикуем пропавший пятничный пост, который СММ-щик забыл опубликовать в пятницу 🙉 Всем продуктивной рабочей недели! Коллега просит глянуть PR. Продакт хочет фичу на вчера. Менеджер подкидывает проект со словами "ну ты же справишься". Каждое рефлекторное "да" – это тихое "нет" чему-то ещё: фокусу, вечеру, качеству работы команды. Зрелое "нет" бережёт твоё время, силы и границы и при этом не сжигает отношения. Секрет – перестать отказывать в просьбе и начать вскрывать её цену. 🎭 Переходи от "Нет" к "Да, если…" Техника из импровизационного театра снимает защитную реакцию: собеседник слышит "да, давай решим как". Работает с кем угодно – CEO, продакт, сосед по команде. 🔹 Бизнесу: "Да, фича X нужная. Мы сможем взять её в этот спринт, если отложим задачу Y. Что для нас сейчас в приоритете?" 🔹 Коллеге: "Да, я сделаю ревью, если это может подождать до 16:00 — сейчас мне нужно дописать критический модуль" Не отказывай без альтернативы и не вываливай список причин: каждая – повод спорить. Ты не споришь, а переводишь разговор в плоскость управления ограничениями. Давят – повтори ту же формулировку (заезженная пластинка). 💸 Возвращай решение тому, у кого полномочия "У нас нет ресурсов" руководитель слышит как "вы плохо работаете". Предъяви размен в деньгах и сроках: "X сдвинет фичу Y на 6 недель, а Y прогнозно даёт 200K$ в Q3 – стоит ли?". Решение за бизнесом. Ты отвергаешь приоритет запроса, а человек ни при чём, – отказ перестаёт звучать как личное. 📊 Сделай "плохим парнем" данные Отказ на эмоциях – обструкция, с цифрами – лидерство. Данные переводят спор "моё мнение против вашего" в вопрос "согласны, что X важнее Y?". Что фиксировать и как собирать: 🔸 Cost of Delay (стоимость задержки) – сколько бизнес теряет за неделю простоя фичи. Сразу видно: ценность правда падает или "срочно" значит "громко". 🔸 Считай всю нагрузку. Канбан и WIP-лимиты, учитывающие on-call, инциденты, ревью, миграции. В одном кейсе 30 инженеров тянули 150+ задач в неделю, половина – баги и долг; перегруз признали, только увидев доску. 🔸 Техдолг как налог на скорость: реестр с полем "долг стоит 14 часов на спринт". Как презентовать: переводи в деньги и сроки, термины оставь себе. Вместо "плохая архитектура" – "фикс 120 часов, экономит 3 часа на спринт, окупится в Q4". Держи публичный отранжированный список проектов – тогда запрос превращается в "что подвинуть?". 🧮 Береги авторитет Senior, который блокирует всё подряд – от нейминга переменных до версий библиотек, – растрачивает авторитет. И когда он кричит "Стоп!" на реальной дыре в безопасности, его уже не слушают. Авторитет – валюта, каждым "нет" ты её тратишь. Классифицируй решение по матрице риск × обратимость: мелочи одобряй; на рискованное обратимое ставь ценник ("задеплоим в пятницу – если ты на on-call в выходные"); на спорное – disagree and commit; жёсткое вето береги для необратимого: PII, compliance, потеря данных. 🏁 Что делать прямо сейчас 🔹 Сделай невидимую работу видимой: канбан и WIP-лимиты, считающие всю нагрузку. 🔹 Заведи реестр техдолга с "налогом на скорость", переводи долг в деньги. 🔹 На запрос – "да, и размен в том, что…" плюс одна причина и альтернатива. 🔹 Перед спором усиль чужой аргумент (steelman) – станешь убедительнее. 🔹 Вето – только для необратимого; иначе ценник или disagree and commit. "Нет" с контекстом и контрпредложением строит больше доверия, чем "да", которое умирает в бэклоге, – и бережёт твои силы и границы. 📚 Что почитать: "An Elegant Puzzle" – Will Larson (глава про saying no и четыре состояния команды) "The Subtle Art of the Technical Veto" – Samuel Oladipupo