min · max · GrVF

Maximin —
инженерия
худшего случая.

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

payoff matrix — демонстрация принципа
исход A
исход B
исход C
стратегия 1
4
7
2
стратегия 2
6
3
5
стратегия 3
8
1
9
худший исход по каждой стратегии → min лучшая из гарантий → maximin = 3
01 / о себе

Меньше оптимизма, больше гарантий.

GrVF — рабочий псевдоним бэкенд-разработчика, который последние годы занимается системами, где цена отказа выше цены лишней недели разработки: очереди с гарантией доставки, шлюзы с бюджетами задержки, пайплайны данных, которые не должны терять события даже при падении половины кластера.

Пишу на Go и Python, реже на TypeScript — когда нужен интерфейс или инструмент для внутренней команды. Из инфраструктуры чаще всего Kubernetes, Terraform и Redis. Люблю задачи на стыке распределённых систем и данных: там, где нужно одновременно думать и про консистентность, и про то, что произойдёт, если сеть моргнёт в самый неподходящий момент.

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

  • max

    Гарантированный минимум

    Каждый сервис обязан предсказуемо работать в худшем из реалистичных сценариев, а не только на happy path в демо.

  • min

    Наблюдаемость по умолчанию

    Метрики, трейсинг и структурированные логи закладываются на этапе дизайна, а не добавляются после первого инцидента в проде.

  • =

    Простые решения масштабируются лучше

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

02 / проекты

Выборка работ

Floorline

01

API-шлюз с бюджетами задержки на основе SLA: отслеживает деградацию бэкендов в реальном времени и перераспределяет трафик так, чтобы p99 не выходил за согласованный потолок.

p99 удержан на уровне ≤180ms при отказе 30% подов
GogRPCEnvoyKubernetes

Signal

03

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

сократил среднее время обнаружения инцидента с 24 до 6 минут
OpenTelemetryClickHousePython

Cohort Atlas

04

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

пересчёт полной когорты — 40 секунд вместо 20 минут на прежнем стеке
PythonPolarsDuckDB
03 / стек

Инструменты

Языки
GoPythonTypeScriptRust (учу)
Данные
PostgreSQLRedisClickHouseDuckDB
Инфраструктура
DockerKubernetesTerraformGitHub Actions
Практики
Test-firstObservabilityChaos testingCode review

Обсудим худший случай вашей системы?

Открыт для интересных backend- и распределённых задач. Отвечаю быстро, обычно в течение дня.

\