Виталий Дрюков

Senior Full-Stack Engineer · Node.js / TypeScript · архитектура и полная ответственность за техническую часть

Ключевые кейсы

Гибридный поиск по базе знаний (2026, собственная инфраструктура)

Собрал поисковый контур над личной базой заметок: CouchDB как источник, Qdrant как векторное хранилище, эмбеддинги multilingual-e5-small, BM25 как лексическая половина гибрида. В индексе — десятки тысяч смысловых фрагментов, переиндексация полная и инкрементальная, всё внутри одной Docker-сети. Доступ к поиску — через Telegram-бота и MCP-интерфейс; маршрутизация моделей (локальные и облачные) через LiteLLM.

QdrantBM25LiteLLMMCPDocker

Конвейер улучшения фотографий недвижимости (2026, EvPro)

Модуль на PHP 8.4 / Laravel 12 для пакетной обработки фото объектов. Решение об улучшении принимается по девяти измеряемым признакам кадра (яркость, контраст, тени, света, шум, резкость и др.), свёрнутым в единую оценку прироста, поверх — одиннадцать защитных проверок, не дающих опубликовать кадр, если качество просело. Каскад «локальная обработка → внешняя генеративная модель» с явным разделением, что делается бесплатно, а что уходит наружу за деньги. Замерены время и стоимость единицы работы — около 25 секунд на кадр локально и порядка трёх долларов за партию в шесть десятков кадров через внешнюю модель — это позволило обсуждать качество с бизнесом в деньгах, а не в ощущениях.

Laravel 12PHP 8.4

Методология ведения проектов JD+PARA (2026, открытый код)

Собственная система ведения технических проектов: Johnny.Decimal для нумерации, P.A.R.A. для разделения проектов и ресурсов, MOC для связей — с правилами, по которым с документацией работают и человек, и ИИ-агенты. Ключевое отличие от органайзера: вопрос, решение и заметка знания — отдельные сущности с обязательными полями. У вопроса — «что изменится от ответа», у решения — отвергнутые варианты и условие пересмотра, у находки — «чем опровергается». Это делает проект передаваемым: следующий участник (или агент) не повторяет уже проделанную работу. Применяется в девяти собственных проектах — больше двухсот заведённых вопросов и около ста восьмидесяти зафиксированных решений. Стартовый набор опубликован — github.com/Miniwe/jdpara.

Точность денежных расчётов в распределённом ядре

Убрал ошибки округления и гонки данных: точная арифметика на decimal.js плюс строгие уровни изоляции транзакций PostgreSQL.

PostgreSQL

Вынос тяжёлых операций в воркеры

Ресурсоёмкие расчёты и генерация отчётов перенесены в изолированные воркеры на BullMQ + Redis — API-серверы перестали ловить HTTP-таймауты на пиковой нагрузке. Реализованы повторы, идемпотентность и dead-letter.

RedisBullMQ

Мультитенантная безопасность

Сквозной tenant-aware доступ на JWT с собственными RBAC/ABAC-политиками — утечки данных между клиентами исключены на уровне контракта, а не на уровне аккуратности разработчика.

Опыт работы

EvProБаку, Азербайджан · 06/2026 – н.в.

Backend-разработчик — медиаплатформа портала объявлений недвижимости (техзадание EV-475). Спроектировал и реализовал на PHP 8.4/Laravel 12 модульный конвейер улучшения фотографий: независимые шаги обработки (баланс белого, HDR, экспозиция, CLAHE, контраст, насыщенность, перспектива, шумоподавление, резкость), систему оценки и защитных проверок, каскад «локальная обработка → внешний генеративный/апскейл-сервис» с явным разделением бесплатной и платной обработки и учётом стоимости вызова. Собрал поставку в единый Docker-образ, вынес вспомогательные Python-инструменты разработки в отдельный репозиторий. Сдал работу по чек-листу соответствия техзаданию — 58 из 59 пунктов, с независимой сверкой кода.

DockerLaravel 12PHP 8.4

Самостоятельное развитие: ИИ и собственные проекты11/2025 – 05/2026

Перерыв между штатными позициями, использованный целенаправленно: собственная ИИ-инфраструктура (LiteLLM как единая точка маршрутизации моделей, локальные модели на Ollama, Caddy/HAProxy на периметре) и контур поиска по базе знаний — подробности в кейсах выше. Плюс исследовательские эксперименты с публикацией кода и результатов.

LiteLLMOllamaHAProxyCaddy

Mitgo Group (Tapfiliate)04/2022 – 10/2025

Senior Frontend / Fullstack Engineer. Платформа партнёрского трекинга и рефералов. Вёл фронтенд веб-приложения целиком: архитектура, микрофронтенды, кодогенерация клиента из OpenAPI, оптимизация рендеринга, тесты на Jest. Участвовал в найме — проводил технические собеседования. NodeJS, React, Redux Toolkit, TypeScript, PHP, Symfony.

Node.jsTypeScriptRedux ToolkitReactOpenAPI

Digital Agro09/2021 – 04/2022

Разработчик. Интерфейсы для сельского хозяйства: веб-карты полей, слои, геоаналитика. JavaScript, React, TypeScript, Leaflet.js, H3, Google Maps, Styled Components.

TypeScriptReact

EnBourse08/2020 – 02/2021

Senior Development Engineer. Система обучения трейдингу. NodeJS, MeteorJS, React, Rocket.Chat, WebRTC.

Node.jsReact

IBS Group11/2019 – 02/2020

Senior Engineer / Архитектор решений. Проектирование архитектуры распределённой системы возврата налогов общегосударственного масштаба: вертикальные и горизонтальные связи между модулями, оптимизация производительности под жёсткие требования безопасности.

BlockProof Tech (DAO Casino)07/2019 – 10/2019

Ведущий фронтенд блокчейн-платформы от первой версии до MVP: лендинг, кошелёк, компонентная библиотека, админка. Команда около пятнадцати человек, Scrum. NodeJS, TypeScript, React, Redux Saga, GraphQL, PostgreSQL.

Node.jsPostgreSQLTypeScriptReactGraphQL

JivoSite03/2018 – 09/2018

Разработчик. Native JavaScript, React, React Native, SVG.

React

Evrone07/2012 – 04/2016

Frontend-разработчик. Ruby on Rails, CoffeeScript, Sass, Backbone, Knockout.

Частная практика / ИТ-консультирование15+ лет суммарно, параллельно основным местам

Полный цикл веб-приложений и корпоративных платформ: оценка требований, расчёт сроков и бюджета, координация разработчиков, сдача проекта. Заказчики из США, Великобритании, Германии, Франции, Чехии и Канады.

Собственные проекты

GoalScorer

Монорепозиторий NestJS + React (Vite/TS) в Docker, subdomain-роутинг, миграция кеша на @nestjs/cache-manager v3 + Keyv, CI/CD и мониторинг на своих серверах. Задумывался как переиспользуемый шаблон под будущие продукты, поэтому решения принимались в пользу предсказуемости и низкой стоимости изменений.

DockerNestJSReactCI/CD

Геоаналитика многолетних насаждений

Исследовательский проект на Sentinel-2 и Google Earth Engine: композиты и признаки по годам, разметка, классификатор, веб-карта с легендой и пояснениями.