Middle+ Frontend-разработчик (Vue, Nuxt, JavaScript/TypeScript, Node.js)
Екатеринбург, РоссияМиддл
Релокация • Удаленная работа • Частичная занятость • Работа в офисе
Опыт работы более 5 лет
Опыт работы более 5 лет
Короткая ссылка: gkjb.ru/g1Bn5
О себе
На данный момент Ведущий 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.
