Блог
Заметки о том, как я строю веб-продукты: фронтенд, бэкенд, инфраструктура и немного о карьере в разработке.
Очереди в Node.js: когда хватит Postgres, а когда нужен RabbitMQ
Разбираю, как собрать надёжную очередь задач на SKIP LOCKED и в какой момент пора поднимать брокер.
Next.js App Router: полгода в продакшене
Что стало лучше, где мы споткнулись о кэш и почему серверные компоненты не везде нужны.
Docker Compose для локальной разработки
Шаблон окружения на пять сервисов, который поднимается одной командой у всей команды.
Монолит или микросервисы для стартапа на 3 разработчика
Почему мы вернулись к модульному монолиту и как разделили код, чтобы не пожалеть.
Формы без боли: React Hook Form + Zod
Типобезопасная валидация, которая одинаково работает на клиенте и на сервере.
Как я перешёл из фриланса в продуктовую команду
Что пришлось перестроить в привычках и почему код-ревью стало главным источником роста.
Prisma vs Drizzle: выбираю ORM в 2026
Сравнение на реальном проекте: миграции, производительность запросов и удобство типов.
GitHub Actions: CI для монорепозитория за 4 минуты
Кэширование, матрицы и запуск только затронутых пакетов.
Проектируем API, которое не стыдно версионировать
Правила именования, пагинация, ошибки и как не сломать мобильных клиентов.
Код-ревью, после которого не обидно
Как писать комментарии к чужому коду, чтобы команда росла, а не спорила.
Новые статьи на почту
Раз в две недели, только тексты из блога. Отписаться можно в один клик.