TGViewer
Channel Public Channel
Hard&Soft Skills

Hard&Soft Skills

@hardsoftskillscommunity

Центр экспертизы для опытных инженеров и архитекторов в IT
https://hardsoftskills.dev

Курсы:
Технический лидер
Solution Architect
CTO Starter Pack

Участвуйте в мероприятиях
https://hardsoftskills.dev/calendar

Чат: @chathardsoftskills
Subscribers
6.24K
Photos
839
Videos
14
Links
591
Recent Posts 20 shown
Post #1365 757
МИФ: После сеньора расти некуда – только в тимлиды идальше в менеджмент

На ревью это звучит примерно одинаково: "Ты отличный senior, но следующий шаг у нас – это тимлид с людьми в подчинении".

Дальше кажется, что есть только три пути: менеджмент, остаться на месте, менять работу.

🧱 Потолок ставят задачи, которых в компании нет

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

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

Уилл Ларсон даёт такую оценку: архитектор вызревает у организаций примерно от сотни инженеров, "правая рука" руководителя – от тысячи.

🏛 Технический трек придумали ровно от этого тупика

Лестницу individual contributor придумали в исследовательских лабораториях середины прошлого века. Компании теряли сильных учёных, которым больше денег и статуса давала только руководящая должность.

Так в 1962 году IBM учредила звание Fellow, которое признавало многолетние достижения и давало свободу дальше заниматься своим делом.

ИТ-индустрия девяностых и двухтысячных этот механизм унаследовала не сразу: схема "инженер → тимлид → менеджер" проще для зарплатной сетки и понятнее для найма.

🧭 Вторая лестница размечена зоной ответственности

Людей в подчинении она не считает вовсе. Senior отвечает за то, что сделал сам.

Техлид или Staff Engineer отвечает за работу своей команды и за договорённости с соседними командами.

Архитектор отвечает за большой кусок системы и за всех, кто над ним работает.

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

🔍 Проверка, которая занимает один разговор

Работает ли эта шкала в вашей компании, видно по людям на верхних ступенях. Найдите живого человека на уровне Staff или Principal и посмотрите, чем его неделя отличается от вашей.

Если таких нет или все они бывшие менеджеры с новым титулом, трека нет.

Допустим, трек есть. Позовут на него всё равно не по выслуге лет.

Вы берёте что-то большое и неблагодарное: миграцию, которую все обходят стороной, класс багов, который никто не разбирает системно.

Доводите до результата на глазах у команды, и должность закрепляет то, что вы уже делаете.

Растёт не объём работы, а радиус, на который распространяется ваше решение.

📚 Что почитать:

Наше короткое видео на эту тему

"Staff Engineer: Leadership Beyond the Management Track" – Will Larson, 2021

"Staff archetypes" – staffeng.com
  • 👍 3
  • 🔥 3
  • ❤ 1
Post #1364 1.13K
Кто отвечает за код, который написал агент

Формальное правило одинаково от Google до open source: смёржил PR – значит отвечаешь, кто бы ни написал код, ты или агент.

Но когда в проде реально что-то падает, ответственность чаще утекает наверх: 46% enterprise-организаций называют виноватым CTO или VP Engineering, и лишь 7% – того, кто физически нажал "смёржить".

Дальше несколько моделей ответственности – и на практике работают не все.

👤 Кто написал – тот и отвечает


Это модель по умолчанию: имя в git blame отвечает за код целиком, независимо от того, кто его придумал.

Она работает, пока PR помещается в голову того, кто его одобрил. Но на масштабе в сотни PR в неделю содержательно понять каждое решение уже физически невозможно.

🔍 Кто ревьюит – тот и отвечает

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

Но объём работает и против него: в командах, где агент включён в поток, PR разрастаются, и ревьюер физически не успевает прочитать каждую строку до дедлайна одобрения.

Гейт такую нагрузку не выдерживает: почти две трети аппрувов уходят без единого комментария.

🎯 Кто владеет сервисом – тот и отвечает


Более зрелый ответ закрепляет ответственность по зоне риска.

Рутинные изменения идут ускоренным путём, а auth, платежи и миграции проходят через конкретного владельца сервиса, и итоговую подпись ставит служба безопасности.

🌀 Виноваты все – значит, не виноват никто

Там, где ответственность не определена, она естественно сползает на команду целиком.

PR ревьюился кем-то ещё, дизайн обсуждался до того, как открыли редактор.

Спросите отдельно службу безопасности, разработчика и ревьюера, кто виноват в инциденте – скорее всего, каждая сторона укажет на кого-то другого.

Это не распределённая ответственность, а её вакуум: три стороны одновременно считают виноватой друг друга.

📝 Кого назначили – тот и отвечает


У вакуума ответственности есть рабочее лекарство: то же коллективное владение, но с одним именем, названным заранее.

Reviewer of record – конкретное имя на каждый мерж с ИИ или без него, назначенное заранее, до инцидента.

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

📚 Что почитать:

State of Code Abundance – CloudBees, 2026
State of AI in Security & Development – Aikido Security, 2026
  • 🔥 10
  • ❤ 2
Post #1363 1.49K
АНАТОМИЯ ФИЧИ: Как Яндекс.Такси ищет водителя

Вы жмёте "Заказать" и через пару секунд получаете машину. Кажется, что система нашла ближайшую. Тогда почему иногда приезжает не та, что стояла в соседнем дворе?

🔬 Сотни тысяч точек, которые всё время двигаются

На линии у Такси одновременно сотни тысяч водителей, координаты каждого обновляются раз в несколько секунд. Сервис Tracker принимает около 20 тысяч геопоисковых запросов в секунду и прогоняет кандидатов через сотню фильтров, а это около 30 млн проверок "водитель × правило" ежесекундно.

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

⚙️ KD-дерево вместо ровной сетки

В отрасли обычно режут пространство равномерной сеткой: геохеш или гексагоны H3. В Tracker геопоиск построен на KD-дереве. Оно делит плоскость по очереди то по широте, то по долготе и сгущается там, где машин больше. Координаты пассажира становятся ключом поиска, и от целого города остаётся горстка кандидатов.

🧬 Почему свой граф дешевле чужого routing API

Дерево отдаёт тех, кто ближе по прямой. Река без моста, односторонняя улица, развязка, и ближайшая на карте машина на самом деле приедет позже той, что кажется вдвое дальше.

Уточнить порядок можно внешним routing-сервисом на каждого кандидата. В Такси посчитали цену: для города со 100 тысячами запросов в день и тысячей машин выходят десятки-сотни тысяч долларов ежедневно.

Поэтому компания построила свой дорожный граф поверх Карт и пробок и ищет по нему того, кто доедет до пассажира первым, а не того, кто ближе. В регионах со сложной дорожной сетью среднее время подачи снизилось на величину до 15%.

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

🤝 Тот же поиск в других системах

🔸 Uber – H3, гексагоны: номер ячейки считается без мутации структуры, что удобно при потоке записей.

🔸 Lyft – geohash-ключи в Redis Cluster, 15 млн запросов в секунду при p99 меньше 10 мс.

🔸 DiDi – geohash в rowkey HBase плюс второй проход с точным пересчётом расстояний.

Форма ячейки, на самом деле, вообще не важна. Выбор здесь стоит между ценой записи и точностью модели мира: сетка почти бесплатна на вставке, но молчит про время в пути, дерево с графом отвечает, кто приедет первым, но поддерживать его сложнее и дороже.

Посмотрите наше минутное видео: там весь путь заказа показан схемой, вместе с буферным назначением.

📚 Что почитать:

"Зачем C++ в Такси? Доклад Яндекса" – Хабр, блог компании Яндекс

"Yandex.Taxi Graph Technologies: The Perfect Search Without Routing API Requests" – Yandex.Taxi: Under The Hood
  • 🔥 12
  • ❤ 3
Post #1362 1.52K
Как обосновать архитектуру перед бизнесом

Техническая команда обычно прекрасно знает, где у неё долг и где можно что-то улучшить. Проблема в том, чтобы доказать бизнесу, что изменение архитектуры – это не просто хотелки разработчиков, а инвестиция в развитие системы и сам продукт.

💸 У бездействия в разговоре нет цены

Любая работа, любые изменения – это деньги, которые тратит компания. Всё же и так работает, лучше добавить в продукт пару новых фич. Поэтому вариант "ничего не делать с архитектурой" кажется бесплатным, если не показать, почему это не так.

Начните с процентов, которые компания уже платит: спросите каждого инженера, какая доля его недели уходит на обход проблем, которые вы и так знаете. Если команда из 30 человек теряет пятую часть, – это шесть инженерных зарплат в год, сотни тысяч долларов в год. И тратятся эти деньги в пустоту.

Теперь разговор меняет жанр. Вместо просьбы выделить инженерное время вы приносите решение о капитальных вложениях: вот ежегодный платёж, вот единовременная стоимость его прекратить, вот срок окупаемости. Такие решения финансовый директор принимать умеет.

🧾 Выход 37signals из облака собран по этой же схеме

Счёт за 2022 год – $3.2 млн, закупка железа – около $700 тыс. Вложения окупились за вторую половину 2023-го, а пересмотренная оценка экономии перевалила за $10 млн на горизонте пяти лет.

Главное возражение звучало так: экономию съест раздутая команда эксплуатации. Компания проверила это на себе – по словам DHH, состав команды не менялся.

Много вложили в правильном месте – много сэкономили.

🎭 Четыре разных "нет"

Совет "говори на языке бизнеса" предполагает единую аудиторию, а её не бывает. У каждого согласующего своя единица измерения:

💰 Финансы считают стоимость работ и цену паузы.
📈 Продажи держат в голове квартал, в котором продукт качнётся на глазах у клиентов.
🏦 Совет директоров смотрит на капитал, замороженный без видимой выручки.
🚀 Продукт меряет себя поставленными фичами.

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

Доказательства придётся приносить, и одно из них пообещать не получится.

📉 Счётчика техдолга не существует

Google между 2018 и 2023 перебрал 117 метрик на трёх типах долга и не нашёл ни одной, которая предсказывала бы сообщения инженеров о долге. Результат авторы назвали разочаровывающим.

Счётчика нет у Google, значит, у вас вряд ли получится его сделать, и дашборд с уровнем долга обещать не стоит. Скажите это сами, до того как вас спросят: отрицательный результат, принесённый добровольно, поднимает доверие к остальным вашим числам.

🚪 Сколько стоит вернуться назад

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

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

Бизнес спрашивает не только "сколько это стоит", но ещё "какой риск я на себя беру, если скажу да, и какой – если скажу нет". Пока второй половины вопроса в вашем документе нет, вы отвечаете на половину.

📚 Что почитать:

"The technical debt business case" – Revolgy, 2026
"Defining, Measuring, and Managing Technical Debt" – Jaspan & Green, IEEE Software, 2023
"Our cloud exit savings will now top ten million over five years" – DHH, world.hey.com, 2024
  • 🔥 9
  • ❤ 5
Post #1361 1.59K
АНАТОМИЯ ФИЧИ: Как устроен MCP Gateway в Uber

Подключить MCP-сервер к агенту – это строчка в конфиге, операция настолько дешёвая, что корпоративное внедрение MCP легко принять за неё же, помноженную на число команд.

У Uber за одним входом больше тысячи MCP-эндпоинтов, и хостинг там самая скучная часть работы.

🔬 Команды Uber MCP-серверы не пишут

Внутренних сервисов больше десяти тысяч, каждый описан proto- или thrift-файлом, и любой такой эндпоинт становится MCP-сервером изменением конфига. Для своих сервисов Gateway генерирует MCP-серверы сам, а сторонние SaaS проксирует.

⚙️ Описание инструмента живёт по правилам кода

Если серверы никто не пишет руками, откуда берётся описание инструмента, по которому агент его и выбирает? Черновик пишет модель: краулер обходит эти proto и thrift, описания составляет LLM по именам сообщений и комментариям.

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

Проходить весь этот путь описание обязано потому, что одобренное можно изменить задним числом, а повторно никто не переспрашивает. В старой версии Cursor одобрение привязали к имени записи MCP-сервера, и подменённую внутри неё команду IDE запустила молча (CVE-2025-54136).

Цену за безопасность Uber платит скоростью: поправить описание инструмента стоит полного цикла ревью, и инструменты меняются не быстрее, чем код. Размен оправдан, пока агент по неверному описанию ломает больше, чем стоит эта очередь.

🧬 В диффе написано "Monitoring Agent"

Описание закрывает половину вопроса. Вторая половина: кто стоит за вызовом.

Инженер просит Oncall Agent разобраться с алертом, тот делегирует Investigation Agent, а дифф с новым порогом открывает третий, Monitoring Agent. Дежурного, с которого всё началось, в авторстве нет.

Протокол тут не помощник: авторизация в MCP помечена как OPTIONAL и опознаёт в лучшем случае непосредственного клиента.

Личность агента Uber описал вне протокола: выдать агенту токен вправе только Security Token Service. Agent SDK просит у него JWT, аутентифицируясь удостоверением своего workload'а (процесса на хосте), а STS через Agent Registry проверяет, что этот workload вправе хостить заявленный agent_id.

Токен несёт аттестованную цепочку акторов: gateway видит [user1, oncall-agent, investigation-agent].

Собрать эту цепочку снаружи нельзя: контекст исполнения рождается в приложении агента, поэтому обмен токенами живёт в его SDK. Готовый agentgateway Uber рассматривал и отказался.

🤝 Доступ агента к внутренним инструментам в других системах

Отсюда и расхождения: границу доверия каждый проводит в своём месте.

🔸 AWS Bedrock AgentCore Gateway – склеивает подключённые цели (targets) в один виртуальный MCP-сервер, каталог по умолчанию обновляется вызовом API.

🔸 Google Agent Gateway – граница в IAM: Identity-Aware Proxy включён всегда, незарегистрированное закрыто. Идентичность агенту выдают, а цепочку "кто кого попросил" дальше не переносят.

🔸 Cloudflare Code Mode – граница в песочнице: код исполняется в изолированном V8 и ходит наружу только через bindings, ключи держит супервизор.

🔸 Block с агентом Goose – центрального прокси нет: сервер проходит два ревью в allow-list, а нужные серверы агент включает на клиенте под запрос.

Главный выбор здесь в том, кто отвечает за описание инструмента и за личность того, кто его вызвал.

Пока агенты у вас только читают и никто не спрашивает "кто это сделал", хватает памяти одного человека. Считать порог надо не по числу агентов, а по числу мест, где ответить уже некому.

Вторая команда-потребитель – самое раннее, когда gateway осмыслен; строить пора с третьей.

📚 Что почитать:

"Solving the Identity Crisis for AI Agents" – Uber Engineering, 21.05.2026

"Running a Software Factory Efficiently at Uber Scale" – Uber Engineering, 27.08.2026
  • ❤ 4
  • 🔥 3
Post #1360 1.68K
Архитектурные катастрофы – часть 12: как 2 миллиона человек встретили Рождество в аэропортах из-за техдолга в софте авиакомпании

С 21 по 31 декабря 2022 года Southwest снял 16 700 рейсов и десять дней не мог выполнять расписание: больше 2 000 000 пассажиров встретили Рождество в аэропортах.

Триггером стал шторм Elliott. Он ударил по всей отрасли – больше 18 000 отмен, но конкуренты оправились за пару дней, а Southwest простаивал почти до Нового Года.

❄️ Погода превращается в событие планирования экипажей

Денвер стоял с вечера 21-го до утра 23-го, Chicago Midway – с середины 22-го до конца 23-го. Из-за этого сломалась вся цепочка укомплектования самолетов экипажами.

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

В Денвере и Чикаго базировалась четверть всего лётного состава – поэтому обрыв вышел массовым.

Шторм закончился 26 декабря, и конкуренты возобновили полеты в тот же день. А Southwest отменял рейсы ещё три дня – на них пришлось 3/4 всех отмен отрасли за 24–31 декабря.

🧠 Что перестало работать

Планировщик экипажей был технически исправен. Дословно из письменных показаний COO Эндрю Уоттерсона Сенату США: "our Crew Scheduling software didn't stop working during this event". Но он устарел настолько, что оказался не готов к происшествию такого масштаба.

🔹 Состояние обновлялось голосом. Где экипаж, сколько отлетал, когда упрётся в лимит – это попадало в систему через телефонный разговор с планировщиком, по коллективному договору на записываемой линии. Очередь быстро стала огромной, по данным профсоюза бортпроводников – до 17 часов. Оптимизатор расписания полетов считал дальше, по картине мира, которой уже не было.

🔹 Режима восстановления не существовало. Планировщик (GE Crew Optimization, внутри – SkySolver) строил расписание вперёд. Разобрать бэклог сломанных связок он не умел вовсе: "SkySolver was never designed to look back" – подпись к графику в показаниях профсоюза пилотов.

🔹 Два оптимизатора без общего контракта. Самолёты и пассажиров считала отдельная система Baker, экипажи она почти не учитывала. В обычные дни расхождение терпимо, в кризисе Baker выдавал планы, исполнять которые было нечем.

💥 Кульминация

26 декабря сеть перезагрузили руками: заранее сняли две трети расписания на 27–29 декабря, сжавшись до ~1 500 вылетов в день с праздничного пика ~4 000. Планирование экипажей шло по старинке: карандашом и бумагой. Борта перегоняли 517 пустыми рейсами.

Счёт: 16 700 отменённых рейсов за 21–31 декабря, более 2 000 000 пострадавших пассажиров, $800 млн убытка до налогов за квартал, $140 млн штрафа Минтранса США – в 30 раз больше предыдущего рекорда ведомства.


🔍 Разбор полётов

🔸 Что пошло не так: единственный канал обновления состояния встал, и оптимизатор потерял связь с реальностью.

🔸 Почему это произошло: модернизацию откладывали годами. SWAPA предупреждал с 2014-го, TWU Local 556 – с 2018-го, в октябре 2021-го был сбой того же типа в меньшем масштабе. 7 ноября 2022-го глава SWAPA публично сказал, что до коллапса остаётся одна гроза, один сбой управления воздушным движением, один отказ роутера. Elliott пришёл через 44 дня.

🔸 Как надо было: электронное обновление состояния, отдельный режим разбора бэклога сломанных связок, общий контракт между Baker и планировщиком. Именно это Southwest сделал в 2023-м, вложив $1,3 млрд в ИТ.

📌 Три урока

🔹 Техдолг нельзя откладывать бесконечно, рано или поздно он выстрелит. Отсутствие инцидентов не доказывает запас прочности.

🔹 Мелкие инциденты уже случаются – предполагайте крупный. Октябрь 2021-го был тем же отказом в меньшем масштабе.

🔹 Ручной фолбэк держит тот масштаб, под который спроектирован. Телефон лежал на критическом пути автоматики: встала очередь – и оптимизатор остался без актуального состояния.

📚 Что почитать

Наше короткое видео в Instagram
– Письменные показания COO Southwest Эндрю Уоттерсона и президента SWAPA Кейси Мюррея Сенату США (09.02.2023); consent order Минтранса США 2023-12-11
  • 🔥 7
  • ❤ 3
  • 👍 1
Post #1359 1.84K
Матрица навыков инженера: как изменился портрет с развитием AI

Стек в резюме мало говорит об инженере. Портрет складывается из набора навыков, где написание кода – одна позиция из тридцати.

Вы помните нашу матрицу навыков, но за последние пару лет, особенно с активным внедрением AI, она устарела. Поэтому, представляем вам матрицу навыков v2.

⚙️ Hard Skills

"Код" – работа руками: код-ревью и контроль качества, тестирование и устранение багов, написание кода, владение инструментами, архитектура кода.

"Архитектура" – устройство систем. Круг идёт от архитектуры кода к документации, дальше – технический кругозор, System Design, проектирование AI-фич, Architectural vision.

💡 Soft Skills

"Коммуникация и коллаборация" открывается убеждением и обоснованием – архитектура, которую не приняли, не существует. Дальше – взаимодействие с другими командами, взаимодействие в команде, менторинг и knowledge sharing, проведение митингов.

"Impact" – масштаб влияния: принятие решений, зона ответственности, критическое мышление, понимание бизнеса. Пятая – стратегическое мышление: замыкает Impact и передаёт горизонт в сбор требований, стык с менеджментом.

👥 Менеджмент

"Stakeholder management" – те, на кого нет прямых рычагов: сбор требований, приоритизация требований, управление ожиданиями, коммуникации со стейкхолдерами, выявление стейкхолдеров.

"Лидерство" – работа с командой: разрешение конфликтов, делегирование, управление командой, создание и поддержание процессов, AI-стратегия и governance.

Лидерство замыкает круг: правила для генерированного кода пишутся здесь, а срабатывают в код-ревью, с которого мы начали.

🎯 Где кончается техника

Senior и TechLead – вершина непосредственных технических навыков. Почти весь сегмент "Код" упирается в потолок здесь: написание кода, тестирование, инструменты дальше идут вниз. Код-ревью – пик TechLead, выше Architect и Enterprise Architect: единственная шестёрка его профиля стоит на контроле качества, через него идёт весь генерированный поток команды.

Разница с Senior почти не в коде: прирост роли – делегирование, процессы, управление командой, приоритизация требований. Начиная с TechLead рост идёт в организацию, ответственность и работу с людьми: лидерство, стейкхолдеры и Impact поднимаются до Enterprise Architect. Переход в Architect часть технических требований отбирает: минус исполнение, плюс горизонт и политика организации.

🤖 Где здесь AI

Спица "Владение AI" исчезла: как инструмент он растворился в написании кода и владении инструментами, отдельными спицами остался там, где стал объектом проектирования и управления.

Планка поднялась у всех пяти ролей. Объём ревью взорвался, и ключевой навык теперь – находить ошибки в коде, который выглядит правдоподобно. Написание кода сместилось к декомпозиции и доводке сгенерированного, а отвечает за смёрженное по-прежнему человек.

Чем ближе навык к людям, тем меньше его изменил AI: договариваться со стейкхолдерами, разрешать конфликты и убеждать людей он помогает слабо.

🛠 Как этим пользоваться

🔸 1 – не требуется в роли, сталкивается эпизодически
🔸 2 – базовое понимание, работает с поддержкой
🔸 3 – уверенно решает типовые задачи
🔸 4 – самостоятельно, отвечает за результат
🔸 5 – экспертный уровень, задаёт практику для других
🔸 6 – задаёт планку в организации, эталон

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

Интерактивная версия: https://hardsoftskills.dev/skill-matrix. Наведение на название спицы покажет описание навыка и то, что в нём изменил AI.

📚 Что почитать:

"Engineering Levels at Honeycomb: Avoiding the Scope Trap" – Honeycomb Blog

"SFIA 9: Skills Framework for the Information Age" – SFIA Foundation
  • 🔥 8
  • ❤ 4
  • 🤨 2
Post #1358 1.84K
Синдром самозванца: почему "я не дорос" звучит громче у тех, кто на самом деле давно дорос

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

🔁 Успех, который не засчитывается

Дело не в неуверенности в себе и не в объёме знаний. Успех не зачисляется на ваш счёт: он переписывается на внешние причины – повезло, задача была лёгкая, собеседующий не копал.

Клэнс и Аймс в 1978-м описали цикл: тревога → переработка → результат → одобрение → облегчение → снова тревога. Повторяющихся успехов не хватало, чтобы его разорвать. Поэтому список достижений не помогает: он попадает в систему, настроенную обесценивать.

📈 Почему это приходит вместе с ростом

Обучение повышает разрешающую способность внутреннего измерителя: вы видите изъяны, которых раньше не различали, ровно когда навык растёт. Плюс среда – Feenstra et al. (2020) читают феномен как психологический ответ на дисфункциональный контекст – у них это про стереотипы и неравное обращение.

🧩 Почему в инженерной работе этого столько

🔹 Errors of omission. Архитектор видит три свои альтернативы и не видит четвёртой, которой не было в голове: полноту собственного поиска изнутри не оценить (Dunning et al., 2004).

🔹 Вас непрерывно оценивают публично, а знание устаревает. Код-ревью, дизайн-ревью, собеседования как ритуал – двадцать лет опыта уживаются с ощущением вечного новичка.

🔹 Выше сеньора исчезает быстрый сигнал. У разработчика провал локален и виден: баг, откат, инцидент. У архитектора он всплывёт через полтора года, когда команда упрётся в потолок выбранной сегодня схемы данных.

🔹 Роль недоопределена. Описания staff+ ролей в карьерных матрицах обычно расплывчаты намеренно. Часть ощущения "я не дорос" – точная считка того, что критерии оставлены незаданными, в том числе теми, кто вас в роль поставил.

🤖 Что добавил ИИ

Самооценка инженера держалась на быстром "я это сделал". Когда задачи закрывает модель, сигнал исчезает, а автоматической замены ему нет – её приходится строить. В итоге появляется стойкое ощущение "я вообще особо ничего не делаю".

Stack Overflow 2025: в списке претензий к ИИ 20% выбрали "стал менее уверен в своих способностях решать задачи".

🛠 Что помогает

🔸 Заменить один общий замер набором замеров по конкретным областям. "Я вообще гожусь на свою позицию?" – слабый замер; "Сколько реально раз из-за моих ошибок произошло что-то плохое?" – проверяемый. Чем уже область оценки, тем она точнее.

🔸 Evidence log (журнал свидетельств): артефакты, которые может проинспектировать другой человек. Запишите, какие вещи вы сделали, и какую пользу они принесли.

🔸 Decision log (журнал решений): Что-то вроде ADR с прогнозом в числах и наблюдаемым условием пересмотра. Какие решения вы приняли, и к каким результатам они привели.

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

📚 Что почитать:

Contextualizing the Impostor "Syndrome" – Feenstra et al., 2020

Do People Have Insight Into Their Abilities? – Zell & Krizan, 2014

Уже сегодня вечером встречаемся на митапе [Рост после сеньора в эпоху ИИ]

⏰ 19:00 GMT+3

👉 Регистрируйтесь и до встречи на митапе!
  • 🔥 12
  • ❤ 2
Post #1357 2.1K
Платёжная система банка: 350 RPS, которые сложнее 100 000

Банк на 10 млн клиентов – это примерно 30 млн авторизаций в сутки, ~350 RPS в среднем и 3 500 на пике. По меркам веба нагрузка скромная. Дорого здесь стоит другое: расхождение в один цент открывает инцидент и отчёт комплаенсу.

📺 В минутном видео мы собрали high-level design и главный трюк: ledger (книга учёта) не участвует в авторизации – авторизация ставит только блокировку суммы на доступном балансе. Здесь – то, что в минуту не поместилось.

💸 Колонка balance ломается тремя способами

UPDATE accounts SET balance = balance - 100 выглядит очевидно, но разваливается на проде:

🔸 Гонки: параллельные апдейты одной строки сериализуются локом, при высокой конкуренции за строку появляются дедлоки
🔸 Потеря истории: из числа 473.12 невозможно восстановить, почему оно такое – а аудитор спросит
🔸 Частичные сбои: процесс упал между списанием и зачислением, и обнаружить это автоматически уже нечем

Рабочая модель – double-entry: проводки append-only и есть источник истины, баланс считается как их сумма. Uber добавляет pre-commit проверку zero-sum – сумма проводок операции равна нулю, иначе коммита не будет. Самый дешёвый детектор багов, который можно построить.

🔒 Потолок записи упирается в одну строку

Это цифра, которую пропускают до продакшена. PostgreSQL: 160–200 транзакций/с на строку. DynamoDB: 1 000 WCU/с на partition key. Uber на своей модели упирался в 3–4 операции/с на аккаунт. Ограничение почти не зависит от выбора БД.

Что помогает, по убыванию отдачи:

🔹 Честная модель домена. Единый счёт "выручка платформы" – артефакт упрощения: реально выручка распадается по BIN (диапазон номеров карт эмитента) и типам комиссии, и нагрузка распределяется сама
🔹 Батчинг записи. Uber сделал окно 250 мс, один read + один write на батч: с 3–4 до 30+ операций/с на аккаунт. Батч целиком идёт 400–650 мс, эффективная задержка на операцию – 8–20 мс
🔹 Специализированная БД – последним шагом, когда предыдущее исчерпано

🧾 От 5 до 50 проводок на платёж

Разброс задаёт число сторон в сделке. У крупного PSP (платёжный провайдер) работает верхняя граница: у Stripe ~100 млн платежей в день превращаются в ~5 млрд проводок, у Adyen ~86 млн – в ~4,3 млрд.

У банка из начала поста соотношение ближе к 4–20. Ledger в любом случае нагружен на порядок сильнее API платежей, и ёмкость планируется по проводкам.

🛡 Дубли ловятся тремя слоями

Ретраи в платежах – это гарантия, поэтому защита ставится эшелонами: идемпотентность (ключ пишется до работы, гарантия – durable UNIQUE в БД, Redis лишь ускоряет), явная машина состояний (capture легален только из Authorized) и transactional outbox против dual-write.

Частый пробел: внутренний ключ есть, а при вызове PSP он не передаётся. При 1 000 TPS и 0,3 % таймаутов это три двойных списания в секунду.

⚡️ Если вы не ответили, ответит сеть

STIP (Stand-In Processing, подмена эмитента сетью) – встроенный в отрасль выбор доступности вместо консистентности: когда эмитент недоступен, карточная сеть одобряет транзакции за него по заданным лимитам. В классическом STIP approval rate падает с 93 % до 67 %, ML-версия Visa этот разрыв сократила. В зафиксированных инцидентах – 49 % за три часа простоя и 0 % за восемь.

📚 Что почитать:

"Zero-Sum by Design: 10 Years of Uber's Payments Platform" – Uber Engineering

"Smarter STIP" – Visa Research
  • 🔥 10
  • ❤ 6
  • 👍 3
Post #1355 2.07K
МИФ: "Проще переписать с нуля, чем копаться в легаси"

Спору четверть века: Брукс, Наур, Спольски, Фаулер – аргументы разобраны, кейсы описаны, каждое поколение техлидов проходит это заново. Миф держится на двух вещах: на том, как мы оцениваем чужой код, и на том, какие проекты в компаниях получают бюджет.

Миф:

Кодовая база сопротивляется: правка в одном месте ломает три других, оценки растягиваются в разы. Вывод напрашивается сам – собрать заново на нормальном стеке, без накопленных обходов, и через полгода-восемь месяцев получить ту же функциональность в поддерживаемом виде.

Реальность:

Сравниваются объекты разной природы. Чтение чужого кода требует восстановления контекста на каждой строке: намерение автора, неявные контракты, допущения о состоянии. Свой код пишется сразу из готового замысла в голове, этой цены нет. Поэтому старая система оценивается по худшим фрагментам, а новая – по замыслу, который ещё не сталкивался ни с реальными данными, ни с пользователями. Столкновение с ними и порождает спутанность.

Непонятные ветки в старом коде – накопленные исправления конкретных инцидентов: проверка на неожиданный формат входа когда-то была тикетом из продакшена. FTP-код Netscape выглядел плохо и работал с 60 типами серверов – результат трёх лет тюнинга. При переписывании эти случаи придётся находить заново, уже на пользователях.

📖 Почему это продаётся:

У полного переписывания есть дата запуска и момент, когда результат можно объявить достигнутым: трафик переключён, старая система выключена. У инкрементальной замены такого момента нет, а обоснование формулируется через качество кода – "грязно", "фреймворк устарел", – и такое утверждение нельзя закрыть как выполненное. Бюджет при прочих равных получает первый вариант.

🔍 Как это выглядит на практике:

1️⃣ Digg v4. Сайт лёг в день релиза и падал неделями на новом кластере Cassandra, плана отката не было – серверы v3 уже переразметили под новый стек. И вместе с кодом выбросили кнопку "bury", страницу upcoming, историю своих публикаций – механику, ради которой люди приходили. Минус 30% мировой аудитории за первый месяц: реализацию продукта перепутали с продуктом.

2️⃣ Полное переписывание чаще становится вечным. Громкий провал редок, обычное состояние – тихое "мы 70% готовы с 2023 года". Две живые системы, и налог платят все команды, кроме той, что пишет новую: спросить, какую использовать, выяснить, в какой базе живёт баг, дежурить по обеим. Издержки размазаны, поэтому проект выглядит дешевле, чем есть.

💡 Что делать на самом деле:

Переписывание с нуля оправдано, когда платформа мертва по-настоящему (нет патчей безопасности, нет людей на рынке), когда вендор загнал в лицензионный тупик, когда система мала и пересборка дёшева. Отдельный случай – продуктовый мотив, и тут жёсткое условие: старую версию оставляют жить.

Опасность создаёт единая точка переключения, за которой нет возврата: Sonos хотел откатиться на старое приложение S2, но возвращать было некуда: софт на колонках и в облаке за месяцы уехал под новый клиент, и возврат сделал бы работу системы только хуже.

Меняй сам вопрос в переговорке: "насколько инкрементально мы можем заменить эту систему, продолжая поставлять ценность". Дальше конкретика: найти шов (seam – место, где систему можно разрезать); накрыть кусок characterization-тестами (фиксируют текущее поведение вместе со странностями); вырастить замену рядом по паттерну strangler fig (фикус-душитель); прогнать её в теневом режиме на боевом трафике; назначить дату удаления старого куска. Миграция без даты удаления становится второй системой.

📚 Что почитать:

Joel Spolsky – "Things You Should Never Do, Part I" – первоисточник спора.

Peter Naur – "Programming as Theory Building" – программа живёт в головах команды, по документации её не воскресить.

Martin Fowler – "Strangler Fig Application" – практический ответ на вопрос "а что вместо".
  • 🔥 13
  • ❤ 4
  • ❤‍🔥 2
  • 💯 2
  • 😍 1
  • 🆒 1
Post #1354 1.86K
Техлид или архитектор: где заканчивается команда и начинается система

Техлид стоит вплотную к коду и к команде и отвечает за качество исполнения внутри своего периметра. Архитектор мыслит системой целиком или крупным доменом: его предмет – связи между частями и их эволюция.

Разница в уровне, на котором человек работает.

🛠 Техлид: команда и её код

Периметр – одна команда и её сервисы, горизонт – недели и кварталы.

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

Влияние идёт через личное присутствие: ревью, дизайн-сессия до написания кода, разблокировка. Код он пишет: прототипы, инструментарий, сложные баги, но фичи на критическом пути не берёт.

Измеряется предсказуемостью поставки команды, 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
  • 🔥 4
  • ❤ 3
Post #1353 1.65K
Вы дошли до 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)

👉 Регистрируйтесь и присылайте вопросы
  • 🔥 7
  • ❤ 3
Post #1352 1.87K
Архитектурные катастрофы – часть 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.
  • 🔥 12
  • ❤‍🔥 2
  • ❤ 1
  • 🤡 1
Post #1351 2.46K
Код-ревью – ботлнек внедрения 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
  • 🔥 17
  • 👍 9
  • ❤ 8
Post #1350 2K
За что в 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 августа – онлайн-день мастер-классов

👉 Программа и регистрация
  • 🔥 5
  • ❤ 1
  • 👍 1
Post #1349 1.94K
Стеклянный потолок сеньора: почему ты застрял

Если ты 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
  • 🔥 6
  • ❤ 4
  • 👍 3
  • 💯 1
Post #1348 2.22K
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
  • ✍ 9
  • ❤ 3
  • 🤮 3
  • ❤‍🔥 2
  • 👍 2
  • 🔥 2
Post #1347 2.08K
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
  • 🔥 9
  • ❤ 2
Post #1346 2.03K
АНАТОМИЯ ФИЧИ: Как 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
  • 🔥 14
  • 💩 1
Post #1345 2.38K
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-продукты для продакшена.


До встречи на курсах!
  • 🔥 5
Older posts →

About this channel

How can I read @hardsoftskillscommunity without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Hard&Soft Skills: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Hard&Soft Skills have?
Hard&Soft Skills (@hardsoftskillscommunity) has 6.24K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Hard&Soft Skills know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →