Крупный e-commerce проект федеральная розничная сеть с высокой нагрузкой, SSR-рендерингом, системой лояльности, персонализацией, A/B-тестированием и интеграциями с внутренними и внешними сервисами компании. Работал на стыке fullstack-разработки, архитектуры, технического анализа и R&D: помогал переводить продуктовые и бизнес-гипотезы в технические решения, прототипы и production-ready изменения.
Команда: Core-команда (4 человека), 8 продуктовых команд разработки (в совокупности около 40 человек причастных к разработке)
- Разбирал продуктовые и технические задачи совместно с разработкой, бизнесом и смежными командами: уточнял цель, ограничения, критерии успеха и варианты реализации.
- Занимался переходом основного проекта с Vue 3 на Nuxt 3: миграция SSR-слоя, адаптация существующих модулей, снижение рисков поэтапного перехода.
- Внедрил AI-review на уровне 8 команд разработки: настраивал правила ревью, контекст проверки изменений, сценарии анализа кода и подходы к применению LLM в инженерном процессе.
- Занимался context engineering для AI-assisted development: готовил проектный контекст, промпты, инструкции и ограничения с учетом архитектуры, кодстайла и требований продукта.
- Составил и вместе с командой реализовывал план перехода большой кодовой базы на TypeScript: более 1000 компонентов, постепенная типизация, унификация подходов и снижение технического долга.
- Реализовывал fullstack-задачи на стыке frontend, BFF и backend-интеграций: проектировал клиентские контракты, участвовал во внедрении BFF и архитектурном разделении монолита на микросервисы.
- Разработал кастомный механизм фетчинга данных на основе ofetch с поддержкой нескольких клиентов, централизованной обработкой ошибок и единым подходом к работе с API.
- Участвовал в разработке системы кэширования и интеграции Nuxt 3 с Redis для повышения производительности SSR-приложения и снижения нагрузки на сервисы.
- Реализовывал систему A/B-тестирования совместно с бизнес-направлением: помогал переводить бизнес-гипотезы в технические сценарии и проверяемые продуктовые изменения.
- Создал парсер переменных из Figma и интегрировал его в UI Kit, автоматизировав передачу дизайн-токенов из дизайн-системы в разработку.
- Развивал UI Kit: интеграция Storybook, написание сторей, настройка тестов на Vitest, улучшение документации и переиспользуемости компонентов.
- Оптимизировал Core Web Vitals, SSR-гидратацию, платформозависимый код, кроссбраузерность и кроссплатформенное поведение интерфейсов.
- Внедрял логирование ошибок через Sentry в SSR-версию приложения, писал кастомные плагины для обработки ошибок в Nuxt и Nitro.
- Мигрировал сторы с Vuex на Pinia, переписывал крупные legacy-модули, переводил код с Options API на Composition API.
- Реализовал документацию на базе Redocly для Swagger-файлов и API-контрактов, чтобы упростить работу frontend/backend-команд.
- Использовал AI-инструменты для анализа legacy-кода, подготовки технических решений, генерации черновиков документации, поиска edge cases и ускорения прототипирования.
- Консультировал разработчиков по Nuxt, SSR, TypeScript, frontend-архитектуре и безопасному применению AI-инструментов в разработке.
- Работал как бизнес- и системный аналитик на стыке бизнеса и разработки: интервьюировал владельцев процессов и стейкхолдеров, формализовал требования и критерии приёмки, декомпозировал задачи, оценивал техническую реализуемость и проектировал интеграции и контракты между сервисами.
- Саппорт-бот — LLM-агент для обработки входящих заявок: суммаризация писем, классификация сообщений, генерация ответов и RAG-поиск по базе знаний; результаты и уведомления доставлял во внутренний мессенджер и Telegram. Стек: n8n, LLM, RAG, webhooks, Telegram API.
- ИИ-ревьюер — по webhook из Git получает задачу, PR и diff, отправляет код в LLM и возвращает структурированный review: ошибки, потенциальные баги, проблемы архитектуры, security-риски, замечания по читаемости и предложения по улучшению; развёрнут на 8 команд разработки. Стек: n8n, LLM, Git webhooks.
- Алерт-бот — мониторинг сервисов: проверки API, cron-задачи, healthchecks и автоматические оповещения команд при сбоях. Стек: n8n, cron, webhooks.
- Автоматизация биллинга внешних сервисов — подсчёт расходов на внешние сервисы, расчёт разницы и статистика использования для оценки их окупаемости под бизнес-потребности (детали под NDA). Стек: n8n, интеграции с API.
- Nuxt 3
- Vue
- TypeScript
- Node.js
- NestJS
- Redis
- BFF
- REST API
- ofetch
- Pinia
- Vuex
- Storybook
- Vitest
- Sentry
- Redocly
- Swagger
- ESLint
- Prettier
- pnpm
- bun
- Turborepo
- AI-assisted development
- LLM
- prompt/harness/context engineering
- n8n
- RAG
- LLM-агенты
- webhooks
- Telegram API
Мобильное веб-приложение для отслеживания женского здоровья Кросс-платформенное мобильное приложение для мониторинга женского репродуктивного здоровья с возможностью совместного доступа к данным цикла между несколькими пользователями. Приложение работает на iOS и Android, поддерживает офлайн-режим и синхронизацию в реальном времени через WebSocket.
Команда: Project Manager, 3 frontend-разработчика, 1 backend-разработчик, 1 QA
- Рефакторинг 80% приложения
- Улучшил производительность
- Сделал функционал шейринга данных между устройствами
- Занимался кросс-платформенной разработкой (ios/android)
- Фиксация ранее найденных багов ошибок приложения
- Занимался адаптивностью с учетом разных моделей телефонов.
- Vue
- Stencil
- Ionic
- Capacitor.js
- TypeScript
- WebSocket
SaaS-платформа для управления тестированием, включающая лендинг, административную панель и внутренний интерфейс для QA-команд. Продукт охватывает полный цикл работы с тест-кейсами от тарификации и онбординга до ежедневной работы инженеров по качеству.
Команда: Team Lead, Project Manager, 3 frontend-разработчика, 2 backend-разработчик, 4 QA
- Разработал интерактивные таблицы тарифных планов с динамическим пересчётом стоимости при изменении параметров подписки.
- Реализовал калькулятор цен с пользовательскими сценариями: выбор количества пользователей, модулей и периода — итоговая сумма обновляется без перезагрузки страницы.
- Выполнил адаптивную вёрстку под широкий спектр мобильных устройств, уделив особое внимание нестандартным разрешениям и браузерным отличиям iOS/Android.
- Реализовал информационные блоки лендинга с анимациями появления и корректным поведением при скролле на всех целевых устройствах.
- Выполнял задачи по внутреннему интерфейсу платформы: доработка фильтрации, улучшение навигации между разделами, правки по итогам QA.
- Laravel
- MySQL
- Redis
- Vue
- Quasar
Мобильное приложение для проводников и сотрудников крупный транспортный перевозчик, автоматизирующее процесс управления посадкой и высадкой пассажиров по вагонам. Разработано с нуля под требования внутреннего регламента компании, работает в условиях нестабильного сетевого соединения.
Команда: 2 frontend-разработчика, 1 backend-разработчик, 1 PM
- Продумал архитектуру приложения
- Покрыл весь функционал Unit и End To End тестами
- Интегрировал приложение с бэкендом
- Разработал множество хуков для того чтобы связать клиент с бэкендом посредством Socket.io и имитировать REST-like запросы (задачей было использовать только одно соединение).
- Разработал систему кэширования, в случаях если приложение перейдет в оффлайн
- Написал плагины для кэширования сторов в Pinia
- Интегрировал приложение с функционалом WebView (Android)
- Добавил функционал для подключения к пользовательскому серверу
- Активно участвовал в разработке архитектуры для API, помогал найти несоответствия с ТЗ
- Запустил два стейджа для приложения с помощью nginx
- Улучшил пайплайн для Gitlab CI/CD (сборка, тестирование unit, тестирование e2e, линтинг с помощью ESLint)
- Покрыл старые устройства с помощью полифилов, добавил тестирование для старых устройств в Playwright
- Тестировал приложение на отказоустойчивость + внедрял систему отказоустойчивости.
- JavaScript
- Vue
- Pinia
- SCSS
- Vite
- Vitest
- Playwright
- Socket.io
- TypeScript
Продуктовый сайт косметического бренда с каталогом товаров, разделом статей и страницами «Где купить» и контактов. Реализован на Nuxt с серверным рендерингом, интеграцией CMS и гибким компонентным конструктором для управления контентом без участия разработчика.
Команда: 2 frontend-разработчика, 1 backend-разработчик, 1 dev ops
- Интегрировал весь внешний API: каталог товаров с фильтрацией, статьи, главная страница, страницы «Где купить» и контактов — каждый раздел подключён через отдельный composable с централизованной обработкой ошибок.
- Разработал компонент-конструктор страниц: принимает JSON-описание блоков от CMS, собирает структуру страницы на сервере (Nuxt SSR) и рендерит её на клиенте — контент-менеджеры обновляют страницы без правок в коде.
- Реализовал SEO-слой: динамические мета-теги и Open Graph для каждой страницы через useHead, структурированные данные для карточек товаров, sitemap с автогенерацией.
- Настроил интеграцию с Pinia: глобальный стор для состояния каталога и фильтров с сохранением параметров в URL для корректного SSR и шаринга ссылок.
- Nuxt
- TypeScript
- Vue
- Pinia
- SCSS
- ESLint
- Vite.
Корпоративный мессенджер предназначенный для общения сотрудников внутри компании. В мессенджере реализованы функционал звонков, управления персоналом, обмен сообщениями и файлами, быстрый фильтр непрочитанных сообщений и выбор компаний, функционал найма и увольнения сотрудников.
Команда: team lead, 14 frontend-разработчиков, 10 backend-разработчиков, 7 QA
- Реализовал фильтрацию списка чатов в реальном времени: поиск по имени контакта и тексту последнего сообщения с дебаунсом, корректная подсветка совпадений при активном WebSocket-соединении.
- Разработал систему автообновления приложения на UNIX-системах на базе Electron Updater: фоновая проверка новых версий, уведомление пользователя, применение обновления без потери текущей сессии.
- Сверстал и внедрил компоненты UI-кита: кнопки, инпуты, модальные окна, тосты — с учётом тёмной и светлой темы, покрыл компоненты Spectron-тестами.
- Добавил кнопку быстрого перехода к последнему сообщению в длинных чатах с анимацией появления и счётчиком непрочитанных.
- Реализовал навигационное меню и интерфейс настроек пользователя: смена аватара, уведомления, управление сессиями.
- Участвовал в настройке и поддержке пайплайна GitLab CI/CD для сборки и публикации Electron-приложения под Windows, macOS и Linux.Активно участвовал в тестировании реализованного функционала
- Vue
- Vue Router
- TypeScript
- Vuex
- Node.js
- Electron
- ESLint
- Spectron
- Mocha
- GitLab CI
- Prettier
- WebSocket
- Jira
- Less
Платформа для стриминга рабочего стола с возможностью быстрого переключения по сценам (как в OBS). Платформа была предназначена для менторства начинающих IT-студентов.
Команда: team lead, 5 frontend-разработчиков, 7 backend-разработчиков, 3 QA
- Реализовал полный цикл WebRTC-соединения на клиенте: SDP-обмен, обработку ICE-кандидатов, переподключение при разрыве и graceful-завершение сессии.
- Разработал интерфейс управления потоками данных: переключение источников (экран, камера, несколько микрофонов), отображение статуса каждого трека, пауза и возобновление без пересоздания соединения.
- Реализовал попапы настройки и проверки соединения: выбор устройств ввода/вывода, тест качества видео и аудио до начала стрима, сохранение предпочтений.
- Реализовал панель сцен по аналогии с OBS: добавление, переименование, удаление и быстрое переключение сцен с предпросмотром в реальном времени.
- Разработал интерфейс менторской сессии: чат, список участников, индикатор активного спикера, управление правами на трансляцию экрана.
- Покрыл критические сценарии Jest-тестами: разрыв соединения, смена устройства во время стрима, одновременное подключение нескольких участников.
- Vue
- Vue Router
- JavaScript
- Jest
- WebRTC
- Pinia
- Asana
Платформа для продажи недвижимости в разных городах с интерактивной картой и удобной навигацией. Реализован личный кабинет пользователя, расчет оплаты по частям, рейтинг покупателей и продавцов, комментарии к недвижимости, биллинг, премиум-аккаунт, а также кастомизация полей для описания недвижимости.
Команда: team lead, 2 frontend-разработчиков, 3 backend-разработчиков, 1 QA
- Реализовал интерактивную карту на базе Google Maps API: кастомные маркеры с кластеризацией, синхронизация выбранного объекта между картой и списком, сохранение позиции карты при возврате из карточки.
- Разработал фильтрацию каталога квартир: многоуровневые фильтры (город, район, тип, цена, площадь) с сохранением параметров в URL и корректной работой кнопки «Назад» в браузере.
- Реализовал профиль покупателя: история просмотров и избранное, рейтинг с историей транзакций, управление персональными данными.
- Разработал навигационную панель с адаптивным меню, корректным отображением состояния авторизации и переключением между городами.
- Реализовал корзину с расчётом оплаты по частям: разбивка суммы по периодам, валидация выбранного плана, интеграция с платёжным API.
- Покрыл ключевые пользовательские сценарии Mocha-тестами: поиск с фильтрами, добавление в избранное, расчёт рассрочки.
JavaScript-библиотека с открытым исходным кодом для извлечения мета-информации веб-страниц по URL: заголовок, описание, OG-теги, фавиконка, изображения. Спроектирована с фокусом на удобство API, минимальный размер бандла и простоту интеграции в любой JS/TS-проект.
Команда: 1 frontend-разработчик, 1 QA
- Соло-проект: сам определил объём и API, реализовал и довёл до публикации в npm — от идеи до рабочего пакета в проде за 3 месяца, без внешней постановки.
- Спроектировал архитектуру библиотеки: разделение на слои получения HTML, парсинга и публичного API — каждый слой заменяем и тестируется независимо.
- Реализовал основной функционал: загрузка HTML по URL с поддержкой редиректов и кастомных заголовков, парсинг мета-тегов (Open Graph, Twitter Card, базовые HTML meta), нормализация относительных URL к абсолютным.
- Разработал типизированный публичный API на TypeScript: строгие типы возвращаемых данных, JSDoc-комментарии для всех экспортируемых функций, d.ts-файлы для потребителей на JavaScript.
- Настроил инфраструктуру проекта: ESLint + Prettier с единым конфигом, автоматическая публикация в npm через GitHub Actions при теге версии, сборка через Rollup в ESM и CJS форматы.
- Покрыл функциональность тестами: юнит-тесты на парсер с мок-HTML, интеграционные тесты на реальных URL с перехватом сетевых запросов.
- JavaScript
- ESLint
- Typescript (только тайпинги)
Десктопное приложение для хранения и организации ссылок, книг, видео и заметок. Работает в офлайн-режиме с локальным хранением данных в файлах и поддерживает онлайн-синхронизацию через Google-аккаунт. Собрано на Tauri — нативная обёртка вокруг Vue-интерфейса с доступом к файловой системе через Rust-бэкенд.
Команда: 1 frontend-разработчик
- Соло-проект: полностью в одиночку — от идеи и требований до кросс-платформенного релиза за 9 месяцев; сам отвечал за продукт, архитектуру, реализацию и выпуск.
- Спроектировал архитектуру приложения: разделение на Vue-слой (UI, состояние, маршрутизация) и Rust-слой (файловая система, нативные API через Tauri) с чётким контрактом команд между ними.
- Реализовал работу с данными через Tauri API: запись и чтение коллекций (ссылки, книги, видео, заметки) в локальные JSON-файлы, атомарные обновления с защитой от частичной записи при сбое.
- Разработал механизм синхронизации с Google Drive: OAuth2-авторизация, загрузка и скачивание файлов данных, определение конфликтов при одновременном редактировании на нескольких устройствах.
- Реализовал оффлайн-режим: очередь операций при отсутствии сети, автоматическая синхронизация при восстановлении соединения, индикатор статуса синхронизации в интерфейсе.
- Настроил CI/CD через GitHub Actions: сборка нативных бинарей под Windows, macOS и Linux, автоматический релиз с прикреплением артефактов к GitHub Release при пуше тега.
- Разработал весь пользовательский интерфейс: поиск по коллекции, теги и фильтры, тёмная тема, адаптация под разные размеры окна приложения.
- TypeScript
- Vue
- Vue Router
- Pinia
- Tauri
- Rust
- Github Workflows
- SCSS