Денис Воронин

Продуктовый инженер-разработчик

Полезные продукты.
Собранные от и до.

Я — Денис. Строю интерфейс, подключаю данные и заставляю детали работать вместе.

Инструменты бронирования, музыка, которая не обрывается между страницами, и коммерческие сайты. React, TypeScript и продуктовое фулстек-мышление.

БеларусьАнглийский — B2Открыт к офферам и контрактам

01 / Мышление

Обо мне

От точных деталей — к продуманным продуктам.

Денис, Продуктовый инженер-разработчик
Денис Продуктовый инженер-разработчик · Беларусь

Продуктовый инженер-разработчик

Системное мышление.
Продуктовый фокус.

  • 16 Первый код
  • 2023 Путь в вебе
  • Fullstack Продуктовая работа
  • B2 Английский
  1. Системность и точность

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

    • Понятные контракты
    • Предсказуемое состояние
    • Типобезопасность
  2. Учусь — и делаю

    От Python-ботов и Telegram Web Apps до RS School и React. Учусь по документации, исходному коду и реальным продуктам.

    • Самостоятельное обучение
    • RS School
    • React и TypeScript
  3. Делаю осознанно

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

    • KISS · DRY · YAGNI
    • Производительность
    • Полезные продукты

02 / Путь

Образование и опыт

От первой HTML-страницы до фулстек-разработки в продакшене.

  1. сен 2023 – мар 2024

    01

    База и чистое ремесло

    Начал 1 сентября 2023 года. Самостоятельно выучил HTML, CSS и JavaScript, собрал первые небольшие приложения на чистом JS и закрепил базу в RS School, прежде чем перейти к React и TypeScript.

    • Адаптивная вёрстка на медиазапросах, Flexbox и Grid
    • Структуры данных, Git и первые приложения на чистом JavaScript
    • RS School Stage 1, затем React — сначала классы, потом хуки — и TypeScript
    • HTML
    • CSS
    • JavaScript
    • React
    • TypeScript
  2. мар 2024 – дек 2024

    02

    Фриланс и Telegram Mini Apps

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

    • Каталог Telegram Web App с фильтрами, поиском и нативной мобильной раскладкой
    • Админка на Django и SQLite на Railway: владелец мог обновлять цены и остатки
    • Многошаговый калькулятор стоимости с вебхуками Telegram и исправление мобильной вёрстки, убравшее сдвиги макета
    • React
    • Telegram WebApp
    • Django
    • JavaScript
  3. дек 2024 – май 2025

    03

    SaaS-контракты и воронки

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

    • Живой калькулятор тарифа с анимированным прогрессом и переключением помесячной и годовой оплаты
    • Редизайн оформления заказа и сравнения тарифов
    • Модалка удержания, подключённая к API на Node.js и Express: проверка контракта, follow-up письмо и логирование оттока
    • React
    • Node.js
    • Express
  4. сен 2025 – сейчас

    04

    Webbee Technologies

    Мидл-фронтенд в международной компании: маркетинговый сайт и легаси-админка SaaS. Перенёс сайт со статического Astro на TanStack Start с TinaCMS и переписал API трекинга на Hono.

    • First Paint на мобильных: с 6,0 с до менее 2,0 с, на десктопе — около 500 мс
    • Редизайн hero-блока и воронки удвоил клики по «Get demo», проверено A/B-тестами
    • 300+ страниц, тепловая карта кликов в Matomo и динамический JSON-LD для блогов и FAQ
    • Контактный конфигуратор переписан как связный список шагов с персистом состояния в Zustand
    • Express переписан на TypeScript и Hono; админка SaaS типизирована и переведена с Redux connect на слайсы
    • TanStack Start
    • TinaCMS
    • Hono
    • TypeScript
    • Zustand
    • Redux Toolkit
  5. Дальше

    Будущее Ваш следующий продукт

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

03 / Измерено в продакшене

Коммерческий эффект

Измеримые результаты работы в продакшене.

04 / Избранные инженерные работы

Флагманские проекты

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

01

Мультитенантный SSR и админ-канвас

Bookio

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

  • TanStack Start
  • Nitro
  • TanStack Query
  • Zustand
  • Hono
  • Drizzle
  • PostgreSQL
  • Better Auth

Архитектура

TanStack Start и Nitro обрабатывают /:organizationSlug/:bookingFormSlug и записывают Open Graph и Twitter-теги в head документа до гидратации.

  • Один маршрут на организацию и форму
  • Соцкарточки — в первом HTML-ответе
  • Nitro выполняет серверный рендер

02

Аудиодвижок и постоянные маршруты

BROOKLYN

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

  • TanStack Router
  • Redux Toolkit
  • SCSS
  • Hono
  • Drizzle
  • PostgreSQL

Архитектура

HTML5 Audio-элемент, обёрнутый в middleware Redux Toolkit. Перемешивание — на Фишере-Йетсе. Повтор, перемотка, скраббинг и горячие клавиши проходят через то же middleware.

  • UI не владеет аудиоэлементом
  • Перемешивание, повтор и перемотка идут одним путём
  • Горячие клавиши работают с любого маршрута

03

Коммерческая работа в Webbee Technologies

Butlerapp

Маркетинговый сайт для ПО курсов и бронирования. В Webbee я перевёл его на серверный рендеринг, улучшил скорость страниц и перестроил воронку демо.

  • React
  • TypeScript
  • TanStack Start
  • TinaCMS
  • Zustand
  • Hono
  • Matomo

Архитектура

Перенёс маркетинговый сайт со статических страниц Astro на серверный рендеринг TanStack Start. Контент живёт в отдельном репозитории с TinaCMS, поэтому маркетинг редактирует его, не меняя код сайта.

  • Миграция с Astro SSG на TanStack Start SSR
  • Отдельный репозиторий контента с TinaCMS
  • Селф-хостинг на Linux VPS с Nginx

04

Сайт кофейной обжарочной · тестовое задание

Kvarta

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

  • Astro
  • React
  • Hono
  • PostgreSQL
  • Drizzle ORM
  • Telegram Bot API

Архитектура

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

  • Фронтенд на Astro и React
  • Бэкенд на Hono с PostgreSQL и Drizzle ORM
  • Реализация с помощью ИИ и проверкой кода

05 / Технический арсенал

Технический арсенал

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

Языки и основы веба

Типизация, семантическая разметка, стили и работа с данными.

  • TypeScript
  • JavaScript (ES6+)
  • HTML5
  • CSS3 / SCSS
  • SQL

Фронтенд и SSR-системы

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

  • React 19 / 18
  • TanStack Start
  • Astro
  • TanStack Router
  • Vite
  • SCSS Modules
  • TinaCMS
  • Paraglide JS
  • Motion
  • Vitest
  • Testing Library

Состояние и синхронизация данных

Чёткие границы между серверными данными, локальными черновиками и валидированными формами.

  • TanStack Query
  • Zustand
  • Redux Toolkit
  • RTK Query
  • Reselect
  • Context API
  • React Hook Form
  • Zod

Бэкенд и типобезопасность

Общие контракты API, надёжное хранение и проверки доступа на границе.

  • Hono
  • NestJS
  • Hono RPC
  • Node.js
  • Express
  • PostgreSQL
  • Drizzle ORM
  • Prisma 7
  • SQLite
  • Транзакции и индексы БД
  • Better Auth
  • REST & GraphQL

Инфраструктура и производительность

От деплоя до измерений: продакшен остаётся быстрым и надёжным.

  • Core Web Vitals
  • GitHub Actions
  • Docker (multi-stage builds)
  • pnpm Workspaces
  • Nginx
  • VPS deployment
  • Linux & Bash
  • Matomo DataLayer
  • JSON-LD

06 / Контакты

Давайте сделаем что-то полезное.

Есть идея продукта или место в команде? Расскажите, над чем работаете.