Hard&Soft Skills – Telegram
Hard&Soft Skills
4.95K subscribers
724 photos
10 videos
3 files
515 links
Центр экспертизы для опытных инженеров и архитекторов в IT
https://hardsoftskills.dev

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

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

Чат: @chathardsoftskills
Download Telegram
🇬🇪 Батуми,

Уже в этот четверг, 18 сентября, мы проводим у вас митап с нашими партнерами из компании Andersen🎉

Начало: 18.30 (по Грузии)

📌 В программе:
‣ Приветственное слово от Павла Вейника 👋
‣ Доклад – инсайты о работе в роли CTO от Стаса Степанова
‣ Нетворкинг-активности с модератором Никитой Щетько🕺
‣ Пицца и напитки 🍕
‣ Подарки от Hard&Soft Skills 🎁

📍 Для тех, кто не сможет прийти лично, будет доступно онлайн-участие.
👉 Регистрация и возможность задать вопрос спикеру – по ссылке. До встречи!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍2👎1
Архитектурные катастрофы: уроки провальных проектов - Часть 3

💥 GitLab – когда человеческий фактор стал ахиллесовой пятой


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

За ночь команда восстановила данные по крупицам – удалось вернуть почти всё, потеряв ~6 часов транзакций. Инцидент прозвали «IT-мелтдауном»: разработчики GitLab публично транслировали ход спасательной операции, а СМИ недоумевали, как такое вообще возможно. Компания выжила и сделала выводы

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


💣 Atlassian — 775 клиентов офлайн на 2 недели

Из-за сбоя в коммуникации команда Atlassian передала скрипту удаления не те идентификаторы. Вместо ID старого плагина для Jira был указан ID всего облачного сайта. Скрипт не проверял тип ID, а сразу удалял что передано и в результате мгновенно стер сайты 775 компаний

Около 0,5% всех клиентов Atlassian лишились доступа к Jira и Confluence; некоторым пришлось ждать восстановления до 14 дней. Полной потери данных удалось избежать, но доверие пользователей было подорвано

Инженеры быстро остановили скрипт и принялись ликвидировать аварию. Команда работала 24/7, восстанавливая удалённые сайты из резервных копий

Урок: Даже рутинные скрипты требуют предельной осторожности. Стоит внедрить “мягкое удаление” и дополнительные проверки, чтобы случайно не уничтожить данные. Важно наладить коммуникацию между командами и регулярно тренироваться в аварийном восстановлении систем


🌐 Facebook — 6 часов глобального офлайна

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

Все приложения компании (включая Instagram и WhatsApp) легли примерно на 6 часов

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

Специалисты на местах перезапустили сеть и восстановили связи между центрами обработки данных. Затем команды постепенно включали сервисы по регионам, чтобы не перегрузить систему всплеском запросов. Благодаря регулярным учениям по отказоустойчивости (storm drills) перезапуск прошёл плавно

Урок: Один неверный шаг в конфигурации сети способен обрушить сервисы даже глобального гиганта. Нужно иметь резервные способы доступа к инфраструктуре на случай подобного сбоя. Реалистичные тренировки по восстановлению инфраструктуры окупаются


🕸 MySpace – социальный гигант, запутавшийся в собственной паутине кода

В середине 2000-х MySpace доминировал среди соцсетей, но его техническая основа – прототип на PHP разросся в неуправляемого «франкенштейна» из скриптов и костылей. Архитектура изначально не была рассчитана на масштабирование

Новые функции прилеплялись без оптимизации, а сайт заметно тормозил и часто ломался. Например, за пару лет MySpace внедрил все подряд: игры и видеосервис MySpace TV, разделы объявлений и мероприятий, музыкальные плееры и кастомизацию профилей

Страницы пользователей, перегруженные блестящими виджетами и автопроигрыванием музыки, еле открывались (если вообще открывались). А тем временем набирал силу «скучный» Facebook – чистый, быстрый и просто работающий

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

Урок: Нельзя строить небоскрёб на гнилом фундаменте. Погоня за блестящими новыми фичами ценой распадающейся архитектуры – верный путь похоронить даже сверхпопулярный проект. Не дайте коду сгнить, иначе конкуренты с более чистым решением вас обгонят
🔥284😁4
🚀 Приглашаем на митап Взаимодействие и конфликт между СТО и СРО/СЕО

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

📅 25 сентября, 19:00 GMT+3

👉 Регистрируйтесь и оставляйте свои вопросы по ссылке
🔥6👍1
🎙 Нагрузка ≠ трафик: что на самом деле убивает системы

📅 7 октября, 20.00 по GMT+3

📌 Программа доклада:
• Неочевидные bottleneck’и: метаданные, блокировки, сетевые очереди
• Сценарии «снежного кома» (cascading failures)
• Почему observability (tracing, logs, metrics) важнее, чем «магия оптимизаций»

👨‍💻 Спикер: Андрей Якушин, Solution Architect и Engineering Manager с 18+ годами опыта в IT.

👉 Регистрация
🔥7👍6❤‍🔥2
Краткий гайд по observability

Потому что одного мониторинга уже недостаточно. Современные системы сложны, и бизнес требует надёжности.

🎯 Что наблюдать и зачем?

Наблюдаем мы прежде всего то, что влияет на пользователей и цели бизнеса. Для этого вводятся SLI/SLO – измеримые показатели качества сервиса, привязанные к бизнес-требованиям. Например, если сервис обещает 99.9% аптайма, то SLO = 99.9%, а error budget = оставшиеся 0.1% допуска на сбои.

Эти метрики напрямую отражают пользовательский опыт: простой бьёт по бизнесу. Error budget определяет, сколько сбоев можно допустить ради новых релизов без ущерба стабильности.

📡 Сигналы и телеметрия: что и как собираем?

Observability стоит на трех столпах: метрики, логи и трейсы.

🔹Метрики – числовые показатели нагрузки и производительности
🔹Логи – подробные записи событий
🔹Трейсы – путь запросов через распределённую систему.

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

Архитектура телеметрии обычно включает агентов на компонентах, которые отправляют метрики, логи и трассировки в централизованное хранилище.

Важно применять открытые стандарты – например, OpenTelemetry – чтобы унифицировать форматы данных и избежать привязки к одному вендору.

🚨 Алёрты и дашборды, которые помогают on-call

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

Дашборды должны давать целостную картину, а не перегружать деталями. Один обзорный дашборд с основными SLI (например, доступность и время ответа) позволяет мгновенно оценить состояние, а детальные панели по ключевым сервисам помогают в диагностике.

Графики на таких панелях должны ясно показывать хронологию событий и связи между компонентами (например, рост latency базы данных совпал с увеличением ошибок в API).

🔍 От сигнала – к причине и действию

Типичный процесс инцидент-менеджмента:

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

📈 Зрелость observability и окупаемость

Главный KPI наблюдаемости – снижение MTTR (времени восстановления). Меньше простоя = меньше убытков и выше доверие пользователей.

Лидеры observability показывают отличные результаты: 89% уверены в надёжности своих сервисов (у новичков 43%), а 86% говорят, что возврат инвестиций превзошёл ожидания – соответственно, чем выше наблюдаемость, тем ниже риск сбоев и тем быстрее развитие новых функций.

Повышайте зрелость постепенно – планируйте улучшения: подключение новых метрик и повышение автоматизации. Observability становится частью инженерной культуры: решения принимаются на основе данных о системе.
🔥13👍61
Друзья! Уже на следующей неделе мы стартуем 4-ый поток курса [Solution Architect in the Wild].

👉 Запишитесь на бесплатную консультацию перед курсом!

Кому курс будет полезен:

🔹 Опытные senior-разработчики
🔹 Техлиды
🔹 Архитекторы и staff engineers
🔹 Выпускники курса [Технический Лидер]

Что будет на курсе:


- Разберем теорию Solution Architecture. В соответствии с TOGAF, как нужно выстраивать архитектуру и архитектурный процесс в организации.
- Рассмотрим коммуникации Solution Architect. Обсудим виды культур в организациях, стадии ЖЦ организации, а также оптимальный способ поведения Solution Architect в зависимости от контекста организации
- Поделимся реальными кейсам и историями. Поймем, что не все архитектурные задачи возможно решить, обсудим истории успехов и провалов в компания различного типа, а также разберем риски в работе Solution Architect.
- Выполним задания по кейсам, которые созданы по реальным ситуациям в проектах.

Преподаватели:

Антон Дворников – Head of Architecture
Павел Вейник – Solution Architect, Staff Engineer

Подробнее о курсе и том, как расти, если ты уже архитектор – запись митапа [Рост и развитие архитектора]
🔥6🤝21
Как писать документацию, которую реально читают?

Хорошая документация должна не просто быть, а экономить время команды и превращать устные договоренности в воспроизводимые решения

📦 Форматы и где их хранить

Доки должны жить рядом с изменениями и иметь один канонический адрес

🔹 ADR – фиксация значимых решений. Хранить в репозитории сервиса (/docs/adr/2025‑10‑03‑slug.md). Структура: Контекст → Опции → Решение → Последствия. Ссылку на ADR ставьте в PR и код
🔹 RFC – изменения с кросс‑командным влиянием. Хранить в /rfcs монорепо или отдельном архитектурном репо. Жизненный цикл: Draft → Review → Accepted/Rejected → Implemented (с метками владельца и даты)
🔹 Runbooks – операции и дежурства: симптомы, метрики, команды, rollback, SLO, эскалации. Хранить рядом с сервисом (/docs/runbook.md) и дублировать в системе он‑колла
🔹 Decision log – поток мелких решений между ADR: одна страница на продукт, записи с датой, ссылками на PR/ADR
🔹 Навигация – индекс и поиск: /docs/index.md, оглавление по доменам, стабильные пермалинки. Нет ссылки – нет документа

🛠 Док‑конвейер: сделать правильно по умолчанию

Чтобы документация не покрывалась пылью, используйте подход docs‑as‑code: авторы пишут тексты в plain text/Markdown, хранят их в git, а изменения проходят ревью вместе с кодом. Без аппрува владельца документа раздел никто не меняет

Подготовьте шаблоны для ADR, RFC и runbook, чтобы команда не тратила время на структуру. Интегрируйте обновление документации в pull‑request: в чек‑листе ревью должно быть "обновлены docs"

Линтинг документов в CI/CD – обязательная часть конвейера. Так же, как линтеры следят за кодом, docs‑linting проверяет синтаксис, стиль и ссылки. Инструменты вроде Vale, Write Good или TextLint работают в GitHub Actions и прерывают сборку, если в тексте есть ошибки

Автопубликация: Docusaurus, MkDocs или Backstage автоматически собирают документацию из репозитория и публикуют на внутренний портал. CI-пайплайн проверяет, что ADR соответствует шаблону, а ссылки не битые

✂️ Пишем коротко и по делу

Начинайте с TL;DR на 5–8 строк: проблема, контекст, решение, последствия, ссылка на PR

Пишите для читателя "через 6 месяцев": уберите локальный жаргон, добавьте дату и владельца

Где можно – схемы вместо прозы: C4 (контейнеры/контексты) и 1–2 последовательности

Процесс – чек‑листом: нумерованные шаги, команды в код‑блоках, критерии успеха

Примеры важнее описаний: пример запроса/контракта, негативный пример, edge‑кейсы. Один файл – одна цель

Документация как часть Definition of Done

🔸 Добавьте в DoD: "обновлены ADR/RFC/Runbook/диаграммы, есть TL;DR, ссылки в PR"
🔸 Гейты в CI: если менялись публичные API, SLO или флоу – требовать связанный ADR/RFC
🔸 В PR‑шаблоне проставьте чекбоксы "Docs updated" и "Owner assigned"
🔸 Демо – только с ссылкой на доки; без нее фича не считается завершенной

🔥 Как побудить команду писать и читать

Сделайте чтение частью ритуалов: архитектурные ревью начинаются с TL;DR, инцидент завершается апдейтом runbook и ссылкой в постмортеме

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

Превратите вклад в документы в метрику признания: учитывайте ADR/RFC в performance review и на демо отмечайте "best doc of the week"

Упростите обнаружение: единый портал с поиском по тегам (домен, сервис, SLA), быстрые "стартовые" страницы для новых людей

Добавьте аналитику: уникальные читатели, время до первого апдейта после инцидента, список "устарело >90 дней" – это топ‑лист для следующего спринта
🔥25❤‍🔥2👌2👎1🙏1
Друзья, 18 сентября мы провели офлайн-митап в Батуми! 🎉

В последний момент у нас произошла замена спикера, но митап всё равно получился очень насыщенным, мы успели:

🎙 Послушать доклад от Павла Вейника и обсудить вопросы о роли CTO
🤝 Побрейнштормить в командах, какого стартапа не хватает Батуми, провести питчинг и выбрать команду-победителя (чурчхела нашла своих героев 🍬)
🍕 Пообщаться за пиццей и напитками в неформальной атмосфере
🎁 Разыграть книгу Мартина Клеппмана Designing Data-Intensive Applications — настоящий must-read для инженеров, работающих с высоконагруженными системами

Книга уже дошла до победителя, Никита ещё раз поздравляем! 🙌

Спасибо всем, кто пришёл, участвовал и сделал этот вечер таким живым и ярким ❤️

PS. 🇰🇿 Алматы — вы следующие! До встречи офлайн уже в конце октября!
🔥144😍1
Если вы думаете, что у вас в компании все плохо, – подумайте еще раз

"Плохо" в смысле процессы не настроены, архитектура разваливается, тестов нет, и все держится на костылях и честном слове.

50% компаний все еще деплоит код вручную. А у 36% даже нет четкой стратегии деплоя. Это одни из выводов исследования Harness – “State of Engineering Excellence 2025”.

Вот еще некоторые цифры:

🔹 10% компаний регулярно пропускает критические баги в продакшен
🔹 76% не используют feature flags или не умеют ими управлять
🔹 Больше трети не следуют единой branching-стратегии
🔹 У 60% компаний тестовая среда не совпадает с продакшеном
🔹 Две трети не могут собрать и протестировать dev-окружение быстрее 15 минут
🔹 В 55% пайплайнов нет ни одного quality gate
🔹 81% компаний не обучают своих инженеров
🔹 У 61 % команд код-ревью занимает больше суток

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

Мы хотим углубиться в эту тему.

Поэтому вместе с Алексеем Обыскаловым, автором канала «CTO: порядок из хаоса», проводим собственное исследование по оценке зрелости инженерных процессов и просим вас поучаствовать.

Зачем это вам:

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

Результаты исследования мы обязательно опубликуем в подробной статье.

👉 Присоединяйтесь к исследованию
7🔥4❤‍🔥2🎉1
🐘 Как съесть слона и не подавиться: архитектура больших проектов шаг за шагом

Что делать архитектору, аналитику или техлиду, когда на стол падает огромный проект – с размытыми бизнес-требованиями, почти без NFR и с кучей регуляторных ограничений?

Разберём на реальном кейсе удачные решения и ошибки на пути к целевому решению:
🔹 дизайн бизнес-архитектуры
🔹 коммуникация со стейкхолдерами
🔹 выбор техстека
🔹 построение инфраструктурных и платформенных решений

🎤 Спикер: Артём Головачёв, Software Architect в Andersen (14 лет опыта в разработке, специализация: архитектура финтех-решений на Java).

📅 16 октября, 20:00 (GMT+3)

🔗 Зарегистрироваться
🔥75
Сеньоры нанимают сеньоров: как проводить интервью

Интервьюирование senior-инженеров требует такого же системного подхода, как проектирование архитектуры — с четкими метриками, воспроизводимым процессом и защитой от когнитивных искажений

🎯 Hiring-бар и ожидания от сеньора

Senior — это человек, который берет неструктурированную проблему, декомпозирует ее, выбирает trade-offs и ведет решение до продакшена с учетом долгосрочных последствий

От сеньора ждем:

🔹 Способность принимать архитектурные решения в условиях неопределенности и обосновывать их

🔹 Опыт влияния на процессы и стандарты команды/компании

🔹 Умение масштабировать себя через менторство, код-ревью, документацию

🔹 Понимание бизнес-контекста и способность переводить его в технические требования

🔹 Track record доставки сложных проектов от замысла до метрик

Hiring-бар проходит там, где кандидат демонстрирует не только "как делать", но и "почему именно так" и "что будет через год"

🔍 Сигналы сеньорности и способы их проверки

Измеряйте конкретные индикаторы, а не общее впечатление:

🔸 Системное мышление: просите описать архитектуру последнего проекта с фокусом на trade-offs. Задавайте follow-up: "Почему выбрали X, а не Y? Как решение повлияло на operational cost?"

🔸 Ownership: спрашивайте про инциденты, которые кандидат расследовал. Проверяйте глубину: от симптома до root cause, от hotfix до долгосрочного решения

🔸 Влияние: интересуйтесь, какие процессы или стандарты кандидат изменил. Если нет примеров — красный флаг

🔸 Code quality на масштабе: разберите кейс про рефакторинг legacy-системы. Как приоритизировал? Как снижал риски? Какие метрики отслеживал?

🔸 Коммуникация: оцените, как кандидат объясняет сложное простым языком — это предиктор эффективности работы в команде

⏱️ Дизайн интервью-процесса

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

Принципы эффективного процесса:

🔹 Предсказуемость: заранее пришлите структуру интервью, темы, формат (coding/system design/behavioral)

🔹 Релевантность: никаких leetcode-марафонов. Давайте задачи, близкие к реальным проблемам вашей команды

🔹 Грамотное использование времени: 3–4 раунда по 60 минут достаточно. Каждый раунд измеряет разные компетенции без overlap-ов

🔹 Асинхронные опции: предложите home assignment как альтернативу live coding для кандидатов с жестким календарем

🔹 Обратная связь: обещайте конкретный timeline (например, решение за 48 часов) — и держите слово

Интервьюеры должны пройти калибровку: одинаковые критерии оценки, общее понимание hiring-бара, умение отличать "не подошел нам" от "недостаточно сеньор"

📊 Фиксация доказательств вместо впечатлений

Субъективное "понравился/не понравился" убивает качество найма. Используйте структурированный scoring

Создайте evaluation framework:

🔸 5–7 критериев (technical depth, system design, leadership, communication)

🔸 Шкала 1–4 для каждого критерия с описанием уровней

🔸 Требование: конкретные примеры из интервью в каждой оценке ("поставил 3 по system design, потому что предложил sharding, но не учел консистентность при failures")

🔸 Независимое заполнение scorecard каждым интервьюером до дебрифа — без влияния мнения коллег

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

Принятие решения и закрытие кандидата

Решение принимается на основе общей оценки плюс аргументированное мнение hiring manager

Правила финализации:

🔹 Нанимаем, если кандидат превышает hiring-бар минимум по 4 из 5 критериев

🔹 Не нанимаем, если есть critical gap

🔹 Если непонятно → дополнительный раунд, сфокусированный на компетенциях, которые вызывают сомнение, или отказ

Нанять неподходящего человека хуже, чем пропустить хорошего кандидата

При отказе давайте конструктивный feedback с примерами: "сильные алгоритмические навыки, но не хватило глубины в distributed systems — рекомендуем изучить consensus protocols и patterns for resilience". При оффере — быстро, четко, с четкими ожиданиями о роли и первых 90 днях
🔥17👍73👎2😁1
🇰🇿 Алматы, встречай!

Мы запускаем первый офлайн-митап From Code to Talk — вечер, где инженеры, архитекторы и тимлиды выходят за рамки кода, делятся peer-to-peer опытом и просто отлично проводят время!

Обещаем вдохновляющие доклады, много пиццы 🍕, живое общение и по-настоящему тёплую атмосферу комьюнити 🫂

🗓 31 октября, 18:30

🎙Программа:
▸ LLM In & Out: Twenty Minutes Adventure. As if… – Иван Луценко, Android Tech Lead в Bereke Bank
▸ Путь от браузера до приложения – Юрий Морозов, CTO в Paylink

Мероприятие организовано в партнерстве с:

🤝 Bereke Bank – казахстанский банк, активно развивающий цифровые продукты и API для интеграций, использующий современные IT-решения и технологии для улучшения сервисов и автоматизации процессов.

🤝 PayLink – финтех-компания из Казахстана, которая предоставляет бизнесу удобные решения для приема онлайн-платежей: подключение эквайринга, рекуррентных и каскадных платежей, поддержка Apple/Google Pay и другие инструменты, нацеленные на увеличение доходов.

🔗 Регистрация
🔥12❤‍🔥22
💡 OaaA: Office as an Architecture.
Как организовать микросервисы в эпоху AI-агентов?


Каждая архитектура рождалась из необходимости − от Layered до Event-driven и микросервисов. Но где место AI-агентам? Отдельный сервис или часть существующего? 🤔

Архитектор и Microsoft AI MVP Alex Pshul представит концепцию Office as an Architecture (OaaA) − подход, в котором система работает как офис: сервисы − отделы, а агенты − новые сотрудники. Вместе они сотрудничают, учатся и создают результат.

🗓 Уже завтра на нашем митапе!
23 октября, начало в 20.00 по GMT+3

Зарегистрироваться и задать вопрос спикеру можно по ссылке🔗
👍3🔥32
Архитектурные катастрофы – часть 4: AWS US-East-1

На этой неделе AWS неожиданно сломали интернет: встали Netflix, Slack, Epic Games, Venmo, Zoom, Reddit и десятки других сервисов.

🔥 Что произошло?

Ночью 19–20 октября в регионе AWS US-East-1 резко выросли ошибки в DynamoDB. Следом посыпались IAM, Lambda, EC2, ECS, RDS и еще 140 сервисов.

AWS быстро локализовала проблему, но к тому времени глобальные таблицы и другие функции AWS уже успели пострадать и полное восстановление заняло 15 часов.

🧠 В чем причина?

Триггер – проблема DNS resolution для эндпоинтов DynamoDB. Из-за скрытого race condition два экземпляра DNS Enactor переписали планы, и региональная DNS-запись DynamoDB неожиданно очистилась (все IP стерлись).

Дальше эффект домино: EC2 не может запускать инстансы → мониторинг Network Load Balancer теряет связь → сетевая связность разваливается → все зависимые сервисы встают.

Интересно, есть ли какая-то связь со словами CEO AWS “AI is now pushing 75% of our production code” или это старый-добрый рукотворный факап? 🤔

🛠 Как AWS справились?

Инженеры AWS перешли в режим аврала. К утру они оперативно обнаружили DNS-сбой и восстановили записи DynamoDB. Затем началась вторая волна: поступивший поток запросов создал перегрузку.

Ключевое решение: временный throttling критичных операций. AWS ограничил rate новых запусков, давая системам время на восстановление без повторного коллапса.

Постепенно трафик выровнялся и ограничения сняли спустя примерно 15 часов после начала инцидента. В 15:01 PDT все сервисы официально вернулись в штатный режим.

💸 Сколько это стоило?

Час простоя US-EAST-1 – $66-100 млн. При 15 часах ущерб составил $1-1.5 млрд для индустрии.

Для Amazon – SLA компенсации и репутационный удар: акции просели на 2.3% ($40 млрд капитализации).

Для пользователей – больше 140 сервисов AWS оказались недоступны или работали некорректно, из-за чего посыпались системы клиентов AWS: самого Amazon, Netflix, OpenAI, Cursor, Slack, Venmo, Perplexity AI, Coinbase, Canva, Duolingo, The NY Times, Apple TV, Twitch и еще десятков компаний с миллионами пользователей.

🔍 Что можно было сделать иначе?

🔹 Chaos Engineering: регулярно и целенаправленно моделировать отказы и сбои в разных местах чтобы протестировать систему на надежность и отработать процесс восстановления.

🔹 Резервные пути и дублирование: снизить зависимость от US-East-1, внедрять мульти-региональные кластеры (например, Global Tables для DynamoDB) или дополнительные DNS-планы, чтобы при сбое был план Б.

🔹 Тестирование автоматизации: регулярно эмулировать аварии DNS (гонки транзакций, сброс старых планов) и тщательно ревьюить критические скрипты обновления. Пусть “AI генерирует 75% кода”, за оставшиеся 25% ручного контроля всё равно отвечают люди.

Что думаете – какие ещё меры могли предотвратить катастрофу? Пишите в комментариях!
🔥23👍6
🚀 Друзья, уже завтра ждём вас на доклад!

📅 28 октября, 20:00 (GMT+3)

От API-запросов к промптам: как Model Context Protocol (MCP) меняет взаимодействие с внешними сервисами и открывает новый уровень интеграции между людьми, AI и системами.

🎙️ Спикер: Максим Сальников, AI Dev Tools & Platforms Solution Engineer в Microsoft, лидер техсообществ и международный спикер из Осло.

👉 Регистрация
🔥53❤‍🔥1
🎙31 октября в 18:30 − офлайн-митап из серии From Code to Talk в Алматы!

🔥 Спикеры митапа:
Иван Луценко, Android Tech Lead в Bereke Bank − LLM In & Out: Twenty Minutes Adventure. As if…
Юрий Морозов, CTO в Paylink − Путь от браузера до приложения, или что происходит, когда вы в браузере вбиваете google.com
Тимур Дуюсов, Technical Product Owner в Bereke Bank − Выгореть, чтобы вырасти: честная история разработчика, ставшего лидом

🍕 Вдохновляющие доклады, пицца, живое общение и уютная атмосфера комьюнити − всё, как мы любим!

🤝 При поддержке Bereke Bank и Paylink
🔗 Регистрация
🔥83👍1
Как выбрать базу данных для проекта и не пожалеть 🤔

🗓 30 октября, 20:00 GMT+3

От реляционных баз до NoSQL, NewSQL, lakehouse и векторных − за полвека индустрия баз данных прошла длинный путь, полный неожиданных открытий и болезненных ошибок. Мы разберём, как выбор хранилища может привести систему к успеху или краху, какие идеи действительно изменили подход к данным, и как не наступить на старые грабли при проектировании новых решений.

📚 В докладе:
‣ краткая история эволюции систем управления данными;
‣ архитектурные идеи, изменившие индустрию (ACID, LSM-деревья, мультимодельные подходы и др.);
‣ реальные кейсы и уроки, которые помогут не повторять ошибки прошлого;
‣ мини-гайд по осознанному выбору базы данных.

👨‍💻 Спикер: Максим Аршинов, Solution Architect в EPAM Spain

👉 Зарегистрироваться
🔥9👍5💅2🎉1
Гигиенический чеклист техлида при делегировании задач

Корректное делегирование задач — ключ к эффективности команды, но даже опытные техлиды часто упускают важные детали.

⚠️ Ошибка: Делегировать задачу, не передавая полномочия принимать решения

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

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

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

❗️ Ошибка: Недостаточно контекста и приоритета у исполнителя

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

Что включить в делегирование:

🔹 Бизнес-контекст: "клиент X грозит уйти, если не решим до конца квартала"
🔹 Технический контекст: ссылка на ADR, связанные PR, метрики до/после
🔹 Explicit приоритет: P0 (бросаем всё), P1 (в текущий спринт), P2 (backlog). Без P0/P1/P2 задача не делегирована
🔹 Зависимости: "блокирует миграцию БД, нужна до 15 ноября"

Ошибка: Делегировать не тому человеку или в неподходящий момент

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

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

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

Про что нужно помнить:

🔸 Capacity check: у человека есть 60–70% времени на новую задачу? Если нет — это не делегирование, а перегрузка
🔸 Growth zone: задача чуть сложнее текущего уровня (70% умеет, 30% новое). Если 100% знакомо — скучно, если 50% новое — стресс
🔸 Bus factor: не давайте критические задачи одним и тем же людям. Распределяйте экспертизу

🔄 Ошибка: Превращать контроль в микроменеджмент или не контролировать вовсе

Частые проверки мелких деталей подавляют инициативу, а полное отсутствие контроля может привести к неприятным сюрпризам на завершающих этапах.

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

🔹 Checkpoint 30%: "покажи дизайн/RFC, обсудим риски" — на этом этапе дешево менять направление
🔹 Checkpoint 70%: "code review драфта, проверим интеграцию" — исправляем архитектурные косяки
🔹 Checkpoint 100%: "demo + метрики, готовность к production"

🔹 Критерии успеха: согласуйте заранее, что конкретно должно быть сделано (например, в виде Acceptance Criteria или тестового списка), чтобы в конце не было разногласий.
🔹 Автономия с отчётностью: позвольте исполнителю самому выбирать подход, но попросите периодически информировать вас о ходе и возникающих проблемах.

🧱 Ошибка: Не убирать системные блокеры и не закреплять результат в процессах

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

После выполнения задачи убедитесь, что её результат интегрирован в процессы: обновите документацию, внесите изменения в план работ и автоматизируйте новый процесс – это поможет закрепить результат и избежать возврата к задаче в будущем.
🔥12👍43😁1
🎙Друзья, редкий в наше время Архитектурный Трёп − уже завтра!

🗓 4 ноября, 20:00 (GMT+3)

Тема − огонь🔥: если вы когда-либо совмещали несколько проектов, думали о втором источнике дохода или проходили через удачный (или не очень) опыт работы на двух фронтах − приходите обсудить и поделиться опытом.

Модерирует Настя Бакулова, ей тоже есть что рассказать. Ждём честного, живого разговора.

💬 Приходите участвовать вживую! Напоминаем, что Трёпы не записываются. Пожалуйста, не подключайте свои AI-тулы для записи бесед − мы будем их удалять со встречи из соображений безопасности.

Подробности и регистрация по ссылке🔗
🔥73🕊2
🔥 Как это было: From Code to Talk в Алматы!

В прошлую пятницу мы провели первый офлайн-митап из серии From Code to Talk — и это было именно так, как задумали: живое общение, искренние истории, пицца и разговоры, которые не заканчиваются даже после официальной части (и после закрытия офиса😸)

Спасибо всем, кто пришёл — вы создали невероятно тёплую атмосферу ❤️

Отдельная благодарность нашим спикерам, которые поделились своими историями и опытом:
Юра Морозов, CTO Paylink (и по совместительству непревзойденный ведущий вечера 💪)
Ваня Луценко, Android Tech Lead в Bereke Bank
Тимур Дуюсов, Technical Product Owner в Bereke Bank

🤝 Спасибо нашим партнёрам Bereke Bank и Paylink — за поддержку и участие.

📸 Делимся кадрами с мероприятия и уже ждем новой встречи!
🔥19👍2💘2