Middle+ Frontend-разработчик (Vue, Nuxt, JavaScript/TypeScript, Node.js)

Екатеринбург, Россия
Миддл
Информационные технологии • Разработка • Frontend • JavaScript • Node.js • TypeScript • React • Vue.js • Ionic • Express • Nuxt.js • CSS • HTML • SASS • MySQL • PostgreSQL
Релокация • Удаленная работа • Частичная занятость • Работа в офисе
Опыт работы более 5 лет
О себе

На данный момент Ведущий frontend-разработчик (Nuxt, Vue, JavaScript/TypeScript).

Мои компетенции и опыт

Frontend-разработчик на Vue, Nuxt и TypeScript, более 5 лет коммерческой разработки: финтех (экосистема продуктов для трейдеров), e-commerce (модульные интернет-магазины), Telegram-боты и Mini Apps, мобильные приложения на Ionic. Работаю над продуктом от интерфейса до серверной части на NodeJS.

  • Развивал модульную платформу из 20+ модулей, работающих в любых условиях: от SSR-сайта до мобильного Ionic-приложения.
  • Разработал высокоинтерактивный Telegram Mini App с нативным ощущением и более чем вдвое сократил ошибки закрытия позиций на backend.
  • Собрал и возглавил команду начинающих разработчиков и дизайнеров, вывел с ней в production проект Connect Teams на NextJS, где опробовал новые подходы к разработке и управлению.

В свободное время делаю игры и pet-проекты, пробую силы на хакатонах.

Английский: B2. Техническую документацию и статьи читаю на английском постоянно, могу общаться по рабочим вопросам.

Опыт работы

Инвольта — Ведущий frontend-разработчик (Nuxt, Vue, JavaScript/TypeScript)

Сентябрь 2025 — Август 2026

Модульная платформа интернет-магазинов с собственной CMS: более 10 проектов на поддержке и развитии — от оптовых магазинов до розничных, с каталогами в десятки тысяч товаров. Платформа переходила от общей библиотеки на Nuxt 2 к более чем 20 независимым, но связанным модулям на Nuxt 3, таким как каталог, корзина, доставка, авторизация. Модули работали и в SSR-сайтах, и в мобильных приложениях на Ionic, собранных из того же Nuxt-проекта. В команде 5 frontend-разработчиков, 2 верстальщика и 4 backend-разработчика (Go, PHP).

Один из двух ведущих frontend-разработчиков (уровень Middle+): выполнял ответственные и самостоятельные задачи, где нужно было определить область работ, согласовать API с backend-разработчиками и встроить решение в существующую архитектуру.

В обязанности входило развивать и поддерживать магазины и CMS — от UI-компонентов до интеграций с внешними API, а также проводить ревью кода коллег.

  • Подключил push-уведомления (OneSignal) в мобильном приложении интернет-магазина на Ionic: от согласования с менеджером и backend до управления процессом публикации в магазины приложений, включая получение необходимых доступов.
  • Перенёс двухфакторную аутентификацию с backend v1 на v2 и разработал универсальные хуки для любых сценариев, например подтверждения email или телефона.
  • Разрабатывал компоненты внутренней UI-библиотеки, в том числе Pin-input и Pagination: оба управляют состоянием и фокусом группы вложенных элементов, а Pin-input совместим с v-mask и формами.
  • Инициировал переход на vue-final-modal как основу модальных окон UI-библиотеки: раньше каждый проект писал их логику заново или копировал чужую.
  • Предложил semver вместо суффиксов -dev в версиях модулей: из-за суффиксов путались dev- и prod-сборки.

Стек: Nuxt 3, Nuxt 2, Vue 3, Vue 2, JavaScript, TypeScript, Pinia, Sass, Nuxt Layers, Nuxt Modules, Ionic, OneSignal, vue-final-modal.

Фриланс — Fullstack-разработчик (Vue, Nuxt, JavaScript/TypeScript, NodeJS)

Ноябрь 2024 — Сентябрь 2025

Telegram Mini Apps, веб-приложения и боты на Vue, Nuxt и NodeJS. Полный спектр работ — от frontend по готовому дизайну на backend заказчика до проектов под ключ, включая серверную часть:

  • MemeTing — Telegram Mini App, сервис знакомств в формате социальной сети с бесконечной лентой контента. Разработал frontend в одиночку на Vue 3, Tailwind и Framer Motion: 46 экранов pixel-perfect по дизайну, предзагрузка данных, анимации. Главная сложность — плавность интерфейса на мобильных устройствах: оптимизировал графически сложные и высокоинтерактивные элементы, чтобы приложение ощущалось нативным.
  • Kettik — Telegram Mini App и бот, площадка, на которой бизнес в сфере развлечений организует мероприятия и собирает людей во внутренний чат события. Развивал бота и Mini App, включая backend: от схемы БД до чатов на SocketIO. Backend на Express, Prisma и MySQL, frontend на Vue 3.
  • timpl — сервис бесконтактной оплаты счёта и чаевых. Перенёс основную часть проекта с Nuxt 2 на Nuxt 3, интегрировал Stripe Connect (приём платежей клиентов, регистрация и верификация партнёров, вывод средств партнёрами) и создал личный кабинет для компаний-партнёров.
  • marketprod — приложение аналитики и автоматизации для продавцов Wildberries (Nuxt 3). Работал над всем приложением, включая графики на ApexCharts и обработку больших объёмов данных.
  • bitmafia — сервис обмена криптовалют. Frontend с нуля по дизайну: Vue 3, Tailwind.
  • more trade — Telegram Mini App, доска объявлений для оптовых закупок и международных перевозок грузов. Frontend по готовому дизайну: Vue 3, ChartJS.
  • 7flags — Telegram Mini App, кабинет участника клуба с календарём мероприятий и постами организации. Nuxt 3, Nuxt Content.

Другие проекты и заказы — от деплоя проектов до скриптов на Tampermonkey, PowerShell и bash.

Стек: Vue 3, Nuxt 3, JavaScript, TypeScript, Framer Motion, Nuxt Content, Tailwind, NodeJS, Deno, Express, Prisma, MySQL, PostgreSQL, SocketIO, Docker, Stripe, Telegram Mini Apps, Telegram Bot API, ChartJS, ApexCharts.

Whitelist — Frontend-разработчик (Vue, JavaScript/TypeScript)

Март 2022 — Сентябрь 2024

Экосистема продуктов для трейдеров-скальперов: личный кабинет с данными бирж (Binance, Bybit, OKX) в реальном времени для 10 тысяч пользователей в день, сервис авторизации Passport и внутренний сервис техподдержки. Frontend-команда работала в кросс-функциональной группе с 3 backend-разработчиками, DevOps, дизайнером и менеджерами проекта и продукта. Работа строилась на Scrum, Kanban и холакратии: любой участник мог вынести на обсуждение возникшую проблему.

Пришёл на позицию junior-разработчика, развивал навыки и брал больше ответственности — вырос до middle. Влиял на продукт, решения и процессы: обсуждал и предлагал изменения на ретроспективах и планированиях.

В обязанности входило развивать и поддерживать клиентскую часть личного кабинета (от интерфейса торговых данных до unit-тестов ключевых компонентов на Vitest). Также в обязанности входило переносить кабинет и Passport с Vue 2 и Vuex на Vue 3, Pinia и архитектуру FSD.

  • Разработал систему, которая вычисляет рассинхронизацию данных биржи между клиентом и сервером и заранее обновляет данные. Месячное число ошибок закрытия несуществующих позиций и позиций с неверными параметрами на backend снизилось с 3000 до 1240 по данным Sentry.
  • Создал с нуля внутренний сервис техподдержки (Vue 3, Element Plus): виртуальные таблицы пользователей и транзакций, функции личного кабинета, дополненные административными данными. Это был первый проект компании на Vue 3 — на нём проверил стек перед переносом остальных проектов.
  • Разработал вход в сторонние продукты по принципу «Войти через…»: пользователь входит через аккаунт в сервисе авторизации компании, сервис хранит учётные записи, подтверждает вход и передаёт данные продукту. Так приложения партнёров стало возможно интегрировать с экосистемой компании.
  • Построил систему white-label для продажи кабинета партнёрам как готового решения: механизм настроек меняет логику, содержание и оформление приложения без отдельной сборки для каждого партнёра.
  • Написал клиентскую часть многофакторной аутентификации (Google Authenticator, SMS, YubiKey) и интегрировал её с backend.
  • Работал над главной страницей — центральной частью продукта, где в реальном времени отображались заявки, балансы и позиции. Например, заложил основу выноса виджетов в отдельные окна браузера и пересобрал в такой виджет страницу переводов средств.
  • Разобрал ошибки в реализации обмена данными по WebSocket, где не учли race condition, исследовал вопрос и оформил выводы в правила для команды: структура сообщений между frontend и backend, работа с соединением.
  • Предложил команде вместо разрозненных git-подходов, вызывавших проблемы, выбрать одну готовую методологию: исследовал варианты, представил выводы в докладе, и команда выбрала git-flow.
  • Разрабатывал компоненты новой UI-библиотеки для Vue 3 на основе Fluent Design.
  • Решал задачи вместе с другими отделами, например с маркетологами (метрики) и юристами (документы в приложении).
  • Верстал шаблоны писем и лендинги компании и её обучающих курсов.

Стек: Vue 2, Vue 3, JavaScript, TypeScript, Pinia, Vuex, Vite, WebSockets, REST, Element Plus, Vuetify, Tailwind, Sass, FSD, Sentry, Vitest, Docker.

NewTech — Frontend-разработчик (PixiJS, JavaScript/TypeScript)

Декабрь 2021 — Март 2022

Клиентская часть онлайн-игр для европейских iGaming-проектов на фреймворке компании, построенном на PixiJS, а также сайт сервиса для похудения (курс, трекер калорий). Команда: руководитель группы (backend), наставник (frontend) и один человек, совмещавший роли менеджера проекта и тестировщика.

В обязанности входило разрабатывать клиентскую часть игр на фреймворке компании — от нарезки ассетов до анимаций, звука, игровой логики и локализации (i18n), а также расширять фреймворк новыми функциями на основе PixiJS.

  • Разработал более 10 игр.
  • Переписал на TypeScript старые игры, новые сразу писал на нём.
  • Перенёс страницы инструкций сервиса для похудения с Tilda на Vue 2, максимально сохранив поведение и стиль.
  • Код проходил ревью в Gerrit Code Review.

Стек: PixiJS, JavaScript, TypeScript, Vue 2, Gerrit.

Фриланс — Frontend-разработчик (Vue 2, JavaScript)

Июль 2021 — Октябрь 2021

Заказы с биржи фриланса, в том числе крупный проект — holons, сервис управления проектами для фрилансеров и компаний. Подключился к проекту, когда продукт был готов наполовину. Работал с владельцем продукта (он же менеджер проекта и заказчик) и backend-разработчиком, который проверял коммиты.

  • Привёл в порядок унаследованный frontend: разбил на компоненты монолитные Vue-файлы страниц.
  • Разрабатывал Kanban-доску на базе API Taiga: довёл до рабочего состояния и добавил новые возможности, в том числе эпики и трекер времени.

Стек: Vue 2, JavaScript, Taiga.



Интересные кандидаты