# Коммерческий опыт

Ahead

Frontend-разработчик (Платформа автошколы)

Май 2025 — Наст. время

Основной фронтенд-разработчик платформы автошколы: веб-система и мобильные приложения под iOS/Android, миграция интерфейса с серверных PHP-страниц на Next.js 15 и перевод мобильного приложения на Expo.

Ключевые достижения:

  • Перевёл интерфейс корпоративного портала с серверных PHP-страниц на Next.js 15 (App Router, RSC) без остановки работы: редиректы Nginx и BFF-прокси позволили старой и новой системам работать параллельно. Старый портал выключен, от него остался только API.
  • Внедрил на вебе Feature-Sliced Design с генератором слайсов и единым API-клиентом, что упростило онбординг новых разработчиков. Перевёл тесты веб-клиента с Jest на Vitest (42 тестовых файла).
  • Перевёл мобильное приложение на Expo SDK 54 (Prebuild, Router), заменил Redux на Zustand + React Query: ручную поддержку ios/android заменили декларативные конфиги. Кодовая база стала короче на 16 810 строк (аудит Knip, Fallow), циклические зависимости устранены.
  • В мобильном приложении написал около 500 тестов, настроил проверки перед коммитом через Lefthook и автоматические релизы в TestFlight и Google Play через Fastlane и Semantic Release.
  • Разработал сложные UI-модули: граф оргструктуры на React Flow + ELK.js, редактор регламентов на Quill с версионированием, Kanban и чаты (события WebSocket пишутся прямо в кэш TanStack Query), командный график с виртуализацией списков.
  • Внедрил типизированную аналитику: единая схема событий, из которой выводятся типы, отправка в AppMetrica в мобильном приложении и в Яндекс Метрику в вебе.
  • Частично затрагивал бэкенд на Laravel + PostgreSQL: тюнинг SQL-запросов и индексов, доработка бизнес-логики на JSON-RPC.
  • Устранил дубли пуш-уведомлений: почистил невалидные токены в сервисе на NestJS + MongoDB.
ReactNext.js 15App RouterRSCTanStack QueryFSDReact FlowELK.jsQuill EditorTailwind CSSReact NativeExpoVitestLaravelPostgreSQLNestJSMongoDBNginxDocker ComposeFastlaneKnipZustandLefthookAppMetricaЯндекс Метрика

Frontend-разработчик (Mobile e-commerce)

Декабрь 2024 — Май 2025

Разработал мобильное e-commerce приложение для ритейла с нуля до продакшена.

Ключевые достижения:

  • Разработал приложение с нуля до продакшена: React Native, Redux Toolkit с нормализацией данных, интеграция WooCommerce API.
  • Довёл тяжёлые списки товаров до стабильных 60 FPS на бюджетных устройствах — FlatList/SectionList, React.memo, useCallback, серверная пагинация.
  • Сделал галерею товаров с pinch-to-zoom на Reanimated и Gesture Handler.
  • Реализовал сетевой слой на Axios с JWT-interceptors для авторизации.
  • Подготовил сборки к публикации в Google Play и настроил сертификаты для дистрибуции в iOS.
React NativeRedux ToolkitWooCommerce APIAxiosReanimatedGesture Handler

Backend-разработчик

Октябрь 2024 — Декабрь 2024

Разработка API для прохождения тестов, логики версионирования и администрирования регламентов (платформа автошколы).

Ключевые достижения:

  • Разработал API для прохождения тестов и работы с регламентами (логика версионирования документов, перемешивание вариантов ответов, валидация результатов и сбор статистики).
  • Реструктурировал бэкенд-миграции базы данных, объединив разрозненные миграции плагинов в единую структуру, что устранило конфликты при локальном развертывании проекта.
  • Реализовал бэкенд-логику для загрузки, конвертации в Markdown и безопасного удаления вложений через API.
PHPPostgreSQL

# Пет-проекты

Разработчик@ Десктопный клиент VK Музыки с офлайн-режимом

Август 2026

Спроектировал и реализовал нативное десктоп-приложение на Tauri 2 с Rust-бэкендом.

Ключевые достижения:

  • Спроектировал и реализовал нативное десктоп-приложение на Tauri 2 с Rust-бэкендом: проксирование запросов к API, OAuth-авторизация через системный браузер.
  • Реализовал офлайн-режим: демультиплексирование потокового аудио (HLS) на стороне Rust и локальный поиск по загруженному контенту.
  • Разработал систему синхронизированного отображения текста песен построчно и по словам с каскадным поиском по нескольким источникам (собственный API, LRCLib, Genius) и проверкой совпадения по метаданным.
  • Реализовал два независимых флоу авторизации с разным уровнем доступа к API, включая обработку жёстких флуд-лимитов сервиса.
RustTauri 2React 19TypeScriptTanStack Router/QueryVKUI 8

Облачный диск с интеграцией внешнего хранилища

Fullstack-разработчик (SPA & React)

Ноябрь 2024

Единственный разработчик (учебный проект). Перевод Express-сервера в режим работы API и переписывание фронтенда на React для перехода к формату SPA.

Ключевые достижения:

  • Перевел Express-сервер в режим работы API и переписал фронтенд на React (Vite) для перехода к формату SPA, разделив интерфейс на компоненты.
  • Заменил сессии и MD5-пароли на авторизацию через JWT и bcrypt.
  • Настроил хранение файлов и папок в MongoDB (Mongoose ODM), добавил Drag-and-Drop загрузку (dnd-kit) и редактирование текстовых файлов прямо в браузере.
  • Переделал загрузку файлов: убрал наблюдателей Chokidar и общую очередь, файлы уходят в VK параллельно, а временные удаляются сразу после отправки.
React (Vite)Redux ToolkitNode.jsExpressMongoDBMongooseJWTbcryptjsCSS Modulesdnd-kitMultervk-io

Fullstack-разработчик (Monolith MVP)

Январь 2024 — Октябрь 2024

Перенос прототипа на Express и развитие монолитной версии 1.0 для проверки гипотезы об использовании документов VK в качестве файлового хранилища.

Ключевые достижения:

  • Перенёс прототип облачного диска на Express/EJS и развил его в монолит с использованием СУБД MySQL в качестве основного хранилища метаданных.
  • Реализовал прямую загрузку файлов во внешнее хранилище через VK API (vk-io) с автоматической очисткой буфера.
  • Создал систему верификации пользователей и двухфакторной аутентификации (2FA) через интеграцию с чат-ботом ВКонтакте.
  • Сверстал адаптивный интерфейс с помощью Flexbox, Grid и медиа-запросов (Sidebar, темная тема).
Node.jsExpressEJSMySQLJavaScriptCSS (Flexbox, Grid)Multervk-io