Книжный куб
11.9K subscribers
2.81K photos
6 videos
3 files
2.07K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
Граф знаний сайта system-design.space (Рубрика #SystemDesign)

Материалов на сайте про system design стало слишком много и мне самому потребовалось средство для визуализации тем, глав и связей между ними. Так у меня получился граф знаний, который показывает 222 глав и 820 связей между ними. Каждый узел - это глава книги, а линия - смысловая связь между материалами. Связи строятся по перекрёстным ссылкам внутри контента глав: MarginNote на полях справа, ссылки из блоков "связанные главы" в конце глав и ссылки, что раскиданы по тексту статьи.

Я планирую в будущем добавить в этот граф возможность выбора траекторий изучения, но пока он работает попрощ
- Клик по кластеру в сайдбаре приводит к зуму и фокусу на главы из этой темы, а остальные главы затемняются
- Клик по ноде в графе открывает панель с деталями главы, списком связанных глав и появляется кнопка перехода к материалу
- Скролл / pinch позволяыт зумить. При приближении появляются названия глав
- Перетаскивание - можно передвигаться по графу или если потянуть за отдельный узело, то можно его перместить
- Цвета узлов соответствуют своим темам (кластерам)
- По разному отмечаются связи внутри кластера и между кластерами + сами связи направленные
- Для отрисовки графа используется force-directed layout (d3-force): узлы отталкиваются друг от друга, а связи притягивают. В итоге связанные главы оказываются рядом, а изолированные - на периферии.

Я использовал этот граф сам для того, чтобы проверить, что у меня я сам не забыл добавить кросс-ссылки между темами (на самом деле забыл и граф мне позволил это исправить).

#SystemDesign #Architecture #DistributedSystems #Career #Interview #Engineering
🔥45👍1410👏1
[1/2] Retired Netflix Engineering Director On Regrets, Video Engineering, Hiring Stories (Рубрика #Engineering)

Интересное интервью Дэвида Ронка, экс Engineering Director в Netflix (пришёл в 2007), позже Director/Principal в Meta (видеотехнологии), которое он дал Райану Питерману , Staff SWE в Instagram. В этом интервью Дэвид, который уже вышел на пенсию, делится ретроспективой своей карьеры и управленческих решений. Основные инсайты следующие

1️⃣ "No brilliant jerks" - это не HR-лозунг, а инженерная оптимизация throughput
Т
оксичная "звезда" может быть сильной индивидуально, но снижает скорость и качество всей команды (а значит и системы).

2️⃣ Героизм и 24/7 - симптом организационного бага, а не доблесть
Если команда не переживает нормальный отпуск ключевого инженера, проблема почти всегда в устройстве системы: ownership, знания, ротации, процессы, приоритеты.

3️⃣ Culture Memo "aspirational": культура без инфраструктуры ломается при росте
На небольшом масштабе "контекст вместо контроля" и сильные люди могут вытягивать многое. На большом масштабе без уровней/процессов/прозрачности вклада начинаются перекосы: вклад размывается, аттрибуция успехов уезжает вверх, компенсации сложнее объяснять.

4️⃣ Масштаб реально меняет физику инженерных решений
Переход в Meta показал ему, что некоторые задачи (например, видео на уровне платформы) нельзя "дожать CPU’шками и количеством серверов" - нужна другая парадигма.

5️⃣ Найм: конфликт "точность оценки <=> масштабируемость процесса"
У него жёсткая позиция про LeetCode (как не очень хороший сигнал качества инженера), но при этом он признаёт: в big tech стандартизация этапов часто неизбежна. Плюс важный тезис: over‑leveling - дорогая ошибка, потому что "мягко опустить ожидания" потом почти невозможно.

6️⃣ Performance/калибрации могут быть отличной школой управленческой объективности
Да, это тяжело и неприятно, но заставляет формулировать вклад инженеров так, чтобы он держался на фактах и impact’е, а не на харизме менеджера.

7️⃣ Риск формализованных систем: перекос в "индивидуальную аттрибуцию результатов"
Вклад становится видимым, но риск в том, что люди начинают оптимизировать "видимость" и личную победу, а не командный результат.

В продолжении расскажу как можно этот опыт переложить на практические рекомендации инженерам и техническим руководителям.

#Culture #Management #Leadership #Processes #Engineering #Software #Career #Interview
12🔥6👍5
[2/2] Retired Netflix Engineering Director On Regrets, Video Engineering, Hiring Stories (Рубрика #Engineering)

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

Что это значит для разработчиков (IC)
- Если ты single point of failure - это не "круто", это риск.
Документация, runbook’и, ротации on-call, передача контекста, “absence drill” (плановая недоступность) — это то, что делает команду взрослой.
- Собирай "evidence of impact" до того, как тебя об этом попросят. Простая привычка: раз в месяц фиксировать “что сделал → какой эффект → какие риски снял → какие метрики/сигналы подтверждают”. Это помогает и в оценке, и в повышении, и в переговорах.
- Не путай "много работал" с "много решил". В разговоре красной нитью: часы - плохой KPI. Системы и команды должны работать так, чтобы не требовать постоянного героизма.
- Про собесы: будь готов к стандартизированным фильтрам, но выигрывает инженерная зрелость. Умение рассуждать про trade‑offs, неопределённость, дизайн систем и реальные решения - то, что отличает сильных на дистанции.

Что это значит для техлидов и технических руководителей
- Культура должна "исполняться", а не декларироваться
. Например, "No brilliant jerks" работает только когда есть реальный enforcement: обратная связь, понятные ожидания и готовность расставаться даже с сильными, если они ломают команду.
- Сделайте отпуск диагностическим инструментом. "Vacation/bus‑factor тест": кто уходит на неделю → что ломается → какие знания/доступы/процессы надо распаковать из головы в систему.
- Видимость вклада - это инфраструктура роста. Не обязательно сразу “как в Meta”. Но вам нужна лёгкая версия: цели → зафиксированный impact → регулярная синхронизация ожиданий между командами, иначе на масштабе всё начнёт “тонуть в тумане”.
- Найм: определитесь, что вы реально измеряете, и структурируйте процесс. Если хотите системное мышление и зрелость - добавляйте этапы, которые это проявляют (work‑sample / разбор реального кейса / обсуждение решений при неполных данных), а не только "задачки".
- Компенсируйте перекос в индивидуальной аттрибуции резульататов. Если "светится" только личный вклад - получите локальную оптимизацию. Добавляйте командные сигналы, качество взаимодействия, ownership на длинной дистанции, культуру совместного результата.

#Culture #Management #Leadership #Processes #Engineering #Software #Career #Interview
15🔥5👍3👎1
Кафедральный собор Святого Павла (Рубрика #Travel)

Мы сегодня с Настей посетили этот собор и остались в восторге. Величественное здание возвышается над округой и внутри выглядит замечательно. Кроме первого этажа можно спуститься в крипту, где покоятся исторические деятели, а также можео подняться под свод собора и даже выше, чтобы со смотровой площадки увидеть Лондон вокруг. В общем, это обязательное для посещение место ... как минимум для туристов.

#Culture
11🔥7👍6
Building AI-Powered Products (Рубрика #AI)

Прочитал интересную книгу Marily Nika, AI Product Lead (Google, ex‑Meta) и основателя AI Product Academy. Marily рассказывает в ней про то, как выглядит отдельная дисциплина AI product management и как определить, а что именно строим, как меряем качество продукта, сколько это будет стоить в продакшене и почему пользователи не уйдут через неделю. Эта книга вышла в феврале 2025 года и пыталась выдать плейбук, который связывает идею → продуктовую ценность → архитектуру → эксплуатацию → метрики → риски. В ней рассматривались вопросы вида
- Как выбирать AI сценарии, которые приносит value, а не "потому что модно"
- Как думать про измерение успеха: оффлайн‑метрики, human eval, мониторинг в проде
- Как оценивать trade‑offs: качество vs latency vs стоимость инференса vs риски
- Как выстроить работу продакт менеджеров, инжиниринга, data science и research, чтобы ожидания совпали
- Как быть с этикой и compliance: данные, приватность, "галлюцинации", ответственность за работу моделей

Если говорить про содержание книги, то она состоит из preface, 8 глав и appendix.

Chapter 1. The Role of AI Product Managers
Здесь автор рассказывает про роль AI продакт менеджеров и как развивалась эволюция AI: традиционный AI → GenAI → грядущий AGI. Какие особенно у AI продуктов, включая вероятностную природу, зависимость от данных, дрифт моделей, требования к интерпретируемости/объяснимости, автоматизированные решения, масштабируемость и влияние этого всего на UX. Тут же описывается какой набор скиллов требуется для AI продакт менеджеров

Chapter 2. The AI Product Development Lifecycle
Здесь автор рассказывает про каркас AI Product Development Lifecycle (AIPDL) и проводит по стадиям:
- Типы AI‑продуктов: 0‑to‑1 (новый продукт) vs 1‑to‑n (AI‑фичи в существующем) (напоминает историю "Zero to One" Питера Тиля)
- Этап Ideation (в т.ч. брейншторм и приоритизация через RICE
- Этап Opportunity: product‑market fit + бизнес‑viability (ROI/монетизация/риски/регуляторика), реализуемость и desirability,
- Concept & Prototype: прототип "хардкодом", проверка интеграции, доменная экспертиза, ценность "с первого дня",
- Testing & Analysis и Rollout

Chapter 3. Essential AI PM Knowledge
В этой главе автор рассказывает про базовые практики продакт менеджмента, классическую оценку build vs buy, лидерство и коммуникации, связь с инженерной командой, базовые технические концепции и так далее. В общем этакий product management 101.

Chapter 4. The AI PMs Day‑to‑Day
Здесь
автор рассказывает про карьерную лестницу AI PM: execution → AI/ML PM → стратегическое лидерство. Дальше она приводит примеры людей, которые работали в этих ролях в разных компаниях. Здесь же идет рассказ про выстраивание кросс‑функциональных взаимодействий в командах.

Chapter 5. Strategic Thinking in AI
Здесь
речь про стратегию и "правильные вопросы" до того, как писать код:
- Когда AI может быть не ответом,
- Disruptive vs sustaining и как не проиграть “innovator’s dilemma”,
- AI‑стратегия build vs buy (матрица решения + гибридные подходы),
- Data‑стратегия: synthetic vs real‑world data,
- Выбор подхода: fine‑tuning vs RAG vs grounding + фреймворк принятия решения,
- Product reviews как инструмент получения buy‑in от руководства.

Chapter 6. Setting Goals and Measuring Success
Здесь
автор рассказывает про метрики и измеримость: product health, system health, ai proxy metrics. Как собирать OKR.

Chapter 7. AI Tools for Product Managers
Обзор классов инструментов для поддержки AIPDL и инструментов для совместной работы.

Chapter 8. Building AI Agents
Глава про агентные продукты, что это такое и как "сконструировать" агента под продукт: вертикальный vs general‑purpose, activation, autonomy, feedback/learning.

#ProductManagement #Software #SoftwareDevelopment #AI #Engineering #Management #Leadership
👍105🔥1
Svelte Origins: A JavaScript Documentary (Рубрика #Frontend)

Посмотрел очередной интересный документальный фильм на этот раз про фреймворк Svelte и его историю по конец 2021 года.
В документалке мы видим ключевых персонажей коммьюнити
- Rich Harris (создатель Svelte) и его путь: от задач интерактивной визуализации к идеям Svelte
- Guillermo Rauch (CEO Vercel) - про переход Rich Harris в Vercel и последствия для проекта
- Orta Therox (инженер TypeScript Compiler) - зачем Svelte нужен TypeScript и как его внедряли
- Amelia Wattenberger (GitHub Next) - про DevEx и "удовлетворённость" пользователей
- м ногие другие

Основные инсайты истории следующие
1. Svelte = компиляторный подход
: максимум работы делается на этапе сборки, в браузере - минимум “фреймворк‑рантайма”. Идея - меньше JS в проде и проще держать performance budget.
2. Отказ от Virtual DOM - не хайп, а инженерный выбор: обновления DOM специализируются под конкретные компоненты ещё на build‑time.
3. Истоки в "враждебном продакшене": интерактивная журналистика/визуализации, дедлайны, куча сторонних скриптов (реклама/аналитика), строгие ограничения по весу и скорости - отсюда мотивация "делать меньше в браузере".
4. Svelte вырос из опыта Ractive.js: осознание, что прошлые подходы дают лишнюю сложность/издержки, и это можно переупаковать в компиляцию.
5. V1 → V3 как история про DevEx: подчёркивается, что "приятность разработки" - часть идеологии, а не побочный эффект оптимизаций.
6. TypeScript - не "приятный бонус", а блокер адопшна. Подробнее про TypeScript и его историю развития можно посмотреть в документалке
7. Комьюнити - это усилитель экосистемы: Svelte Summit + Svelte Society как инфраструктура онбординга, контента, пакетов и "социального доказательства"
8. Профессионализация через Vercel: Rich получает возможность заниматься Svelte full‑time, при этом отдельно проговаривается независимость governance
Отдельно стоит отметить, что это история на конец 2021 года, когда был снят ролик, а не актуальное состояние фреймворка и планов его развития.

Что это значит для разработчиков
- Если у вас жёсткие бюджеты по JS/TTI/LCP и много интерактива - Svelte логично тестировать как кандидат: философия проекта про это.
- Делайте пилот вертикальным слайсом (одна реальная фича/экран), а не демкой: сравните bundle size, LCP/TTI, скорость доставки и "количество слоёв абстракций".
- Если в компании TS - начинайте пилот сразу с TypeScript, потому что TS‑поддержка в видео явно показана как важнейший запрос рынка.
- Для data‑heavy UI / визуализаций проговаривается сильный паттерн Svelte + D3.

Что это значит для техлидов и руководителей
- Здесь классно показана рамка принятия решений: переносим сложность из runtime в build‑time → выигрываем в рантайме, но должны честно оценить trade‑offs (инструменты, дебаг, экспертиза, найм).
- Риски OSS по-взрослом: Vercel снижает bus‑factor (full‑time maintainer), но появляется управленческая зависимость от спонсора как стейкхолдера. Это стоит проговорить заранее.
- Перед пилотом фиксируйте KPI успеха: RUM‑метрики, регрессии, time‑to‑ship, дефекты UI/реактивности - чтобы обсуждать не "нравится/не нравится", а эффект.
- Стратегия внедрения: инкрементально (страница/модуль/"острова"), а не big‑bang rewrite.
- Инвестируйте в обучение идей (реактивная модель, стоимость обновлений, дизайн состояния), а не только синтаксиса компонентов.

#Software #Documentary #Engineering #Architecture #Management #Frontend
2👍1🔥1👌1
[1/2] How AWS S3 is built (Рубрика #Architecture)

Интересный выпуск подкаста "The Pragmatic Engineer", в котором Gergely Orosz общается с Mai‑Lan Tomsen Bukovec, VP of Data & Analytics в AWS, которая руководит развитием/эксплуатацией S3. А Simple Storage Service - это одна из самых масштабных систем в мире, поэтому из этого обсуждения можно извлечь много интересного

1️⃣ Масштаб, который ломает интуицию
В S3
сотни миллионов транзакций в секунду, 500+ трлн объектов, сотни эксабайт данных. Интересно, что Gergely и Mai‑Lan говорят о том, что сложенные в стопку десятки миллионов дисков в S3 почти смогут достать до МКС

2️⃣ Переход к strong consistency - как крутая инженерная миграция
S3 стартовал с eventual consistency (2006), но затем перешёл к strong consistency без ухудшения доступности и без удорожания для клиентов. Архитектура была примерно такой: replicated journal + протокол когерентности кеша с идеей failure allowance

3️⃣ Тихий переход на Rust в критическом request path
Команда переписала почти всё performance‑critical в обработке запросов на Rust, с мотивацией: максимум perf и минимум latency

4️⃣ 11 девяток durability - это "измерение факта", а не обещания
Durability уровня 99.999999999% поддерживается не магией, а флотом фоновых сервисов: микросервисы аудита, которые непрерывно проверяют каждый байт, и отдельные repair‑механизмы, которые автоматически чинят.

5️⃣ Формальные методы - это production‑практика, а не академические изыски
В S3 активно используют формальные методы верификации: при изменениях в подсистеме индексов/консистентности запускаются автоматические формальные проверки, чтобы не было регресса модели. И это не просто слова: в публикации Amazon Science про "lightweight formal methods" описан опыт, где такие методы помогли не пустить в прод 16 проблем

6️⃣ Главный враг сегодня - correlated failures
Одиночные поломки нормальны, но опасны коррелированные отказы: общий rack/AZ/питание/и т.п. Архитектура строится вокруг борьбы с этими корреляциями: репликация по AZ, quorum‑подходы, физическая/логическая декорреляция, хранение копий в разных fault domain

7️⃣ Сотни микросервисов - и многие из них не про трафик

В эпизоде фигурирует порядок 200+ сервисов, и заметная часть из них занимается health checks / audit / repair, а не пользовательскими запросами. Сложность удерживается через упрощение - каждый сервис должен быть максимально сфокусирован

8️⃣ S3 перестаёт оперировать только бакетами: новые примитивы Tables и Vectors
Появились новые примитивы
- S3 Tables: объектное хранилище с встроенной Apache Iceberg‑поддержкой и фоновой оптимизацией таблиц (перепаковка/компакшн и т.п. "в фоне"). AWS заявляет до 10x TPS vs Iceberg‑таблицы в обычных S3‑бакетах
- S3 Vectors: нативное хранение/поиск векторов в S3. В эпизоде - инженерная идея vector neighborhoods (предрасчёт кластеров оффлайн), чтобы получить тёплые запросы <100ms, и очень большие масштабы индексов/бакетов

9️⃣ Crash consistency - как мировоззрение
Настоящие инженеры мыслят так: система должна возвращаться в корректное состояние после fail‑stop; проектирование идёт через перебор возможных состояний при отказах + набор сервисов, которые удерживают инварианты

🔟 Принцип Scale must be to your advantage
Нельзя строить так, чтобы рост сервиса ухудшал характеристики; на масштабе, наоборот, должны появляться эффекты, улучшающие надёжность (например, декорреляция нагрузок)

В продолжении расскажу как можно этот опыт переложить на практические рекомендации инженерам и техническим руководителям.

#Culture #Management #Leadership #Processes #Engineering #Software #Architecture #DistributedSystems #SystemDesign
🔥137👍5🥱1
[2/2] How AWS S3 is built (Рубрика #Architecture)

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

Для инженеров можно забрать идеи о том, что
- Надёжность - это не try/catch и ретраи, а отдельные системы: аудит, восстановление, непрерывная проверка инвариантов. Если у вас данные с высокими ставками, то думайте не только про happy path, но и про способы самовосстановления
- Корреляция отказов важнее единичных сбоев - дизайн по fault domains (rack/AZ/region), хаос‑тесты не для того, чтобы случайно вырубить ноду, а для того, чтобы отключить общий домен отказа
- Rust в критическом пути - это хороший способ оптимизации, если вы пишете сетевой/IO‑интенсивный runtime или любой hot path - memory‑safe системный язык становится конкурентным преимуществом
- Формальные методы могут быть не избыточно тяжелыми, а практичными: не обязательно верифицировать всё. Достаточно выбрать 1–2 инварианта (консистентность, crash safety, права доступа) и поставить автоматическую проверку рядом с CI

А для технических руководителей это история про то, что
- Сложность можно победить ограничениями - сервисов может быть сотни, но каждый должен быть простым и сфокусированным, а иначе система станет неуправляемой.
- Метрики уровня SLO должны быть измеряемыми, а не декларативными: идея мы можем ответить, какая у нас фактическая durability за неделю/месяц - это про культуру инженерии, где операционка встроена в дизайн.
- Correctness как продукт - automated reasoning/формальные проверки как инвестиция, которая позволяет двигаться быстро и не ломать. Это особенно важно там, где тестами невозможно покрыть комбинации состояний
- Хранилище S3 превращается в data‑платформу: Tables/Vectors - это намёк, что часть базы/поиска/оптимизации всё чаще будет жить рядом с storage. Для архитектуры это означает: регулярно пересматривайте, что выгоднее - строить самим или сдвигать вниз в managed‑примитивы.

Если хочется попробовать этот подход у себя, то можно
- Нарисовать fault domains (реальные) и проверить, где у вас скрытая корреляция.
- Добавить сервис аудита хотя бы для ключевых инвариантов (checksums/версионирование/сверка индексов/реплик).
- Выделить 1 критичный модуль и использовать легковесный формальный подход: спецификация + автоматическая проверка (пусть даже минимальная).
- Пересмотреть сервисы на предмет перегрузки функциональностью и разложить ответственность так, чтобы каждый компонент был тупым, маленьким и проверяемым.

#Culture #Management #Leadership #Processes #Engineering #Software #Architecture #DistributedSystems #SystemDesign
4🔥3👍2
An Illustrated Guide to AI Agents (Рубрика #Agents)

Пока летел обратно из Лондона в Москву успел прочитать эту книгу и могу ее рекомендовать всем. Ее пишут Jay Alammar и Maarten Grootendorst - авторы крутой книги "Hands-On Large Language Models", о которой я уже рассказывал. Новая книга про агентов настолько же хороша, как предыдущая, а еще она находится в процессе написания и пока написана только половина глав. Уже видно, что новая книга продолжает тему LLM, но уже в мире AI agents - то есть в первой книге читатели могут увидеть как устроены LLM (там почти 300 иллюстраций), а в новой - как из LLM собирать агентские системы. То есть первая книга отвечает на вопрос "что у модели внутри", а новая - как вокруг модели построить память, tools, планирование и координацию. В общем, рекомендую читать именно в таком порядке, чтобы сначала понять движок, а потом - архитектуру приложения.

Если говорить про готовность книги, то сейчас уже готовы основные главы

1. Introduction - зачем вообще нужен "agent", чем он отличается от просто LLM-вызова, где кончается чат-бот и начинается система. Это глава для выравнивания терминов и общей архитектурной картинки.
2. Reasoning LLMs - что меняется, когда модель умеет не только отвечать, но и проходить цепочки рассуждений / test-time reasoning. Это важная глава, чтобы не путать "умный ответ" и "умение модели размышлять".
3. Memory - это одна из самых практичных частей: контекст, short-term vs long-term memory, context engineering, как агент "помнит" и почему память быстро становится архитектурной, а не только ML-задачей.
4. Tool Usage, Learning, and Protocols - эта глава про инструменты, function calling, интеграции и протоколы вроде MCP. То есть про момент, когда LLM перестает быть только генератором текста и начинает что-то делать во внешнем мире.
5. Planning and Reflection - здесь речь про декомпозицию задачи, пересборку плана, self-critique и feedback loops. Это уже территория, где агентность начинает влиять на надежность и стоимость решения.
6. Multi-Agent Systems - когда одного агента мало, как делить роли между несколькими, а также как выстроить координацию агентов. Тут появляется и A2A протокол (раньше я уже как-то рассказывал про MCP vs A2A протокол)

В общем, мне книга зашла и я буду следать за появлением новых глав. Думаю, что она будет полезна инженерам и техлидам, которым нужно не увидеть "еще одно демо", а построить себе в голове ментальную модель: из каких блоков вообще собираются AI agents и где в этой конструкции живут реальные инженерные риски. И если "Hands-On Large Language Models" был хорошим входом в тему LLM, то "An Illustrated Guide to AI Agents" выглядит как хороший вход в тему агентских архитектур и мульти-агентных систем

P.S.
Более подробный разбор есть на сайте system-design.space.

#Architecture #Software #AI #Engineering #ML #Data #SystemDesign #DistributedSystems
🔥115👍4