Екатеринбург · удалённо · UTC+5

Игорь
Бахтин

Lead Frontend Engineer архитектуракоманда

Фронтенд банка, который держит миллионы клиентов

Лид компетенций по фронтенду кластера «Карты» в РСХБ. Отвечаю за четыре продуктовых веб-модуля «Своих Финансов», архитектуру и код-ревью для 6–8 разработчиков. Пишу код каждый день: за последний год — около 2 900 правок в 30 репозиториях.

Отвечаю в течение дня · Екатеринбург · UTC+5

  • 12лет

    в коммерческой разработке, из них 5 — в банке

  • 4модуля

    продуктовых веб-модуля под моей ответственностью

  • 6–8разработчиков

    в зоне код-ревью, наставничества и техрешений

  • 475тестов

    проходят после миграции модуля карт с Redux на Zustand

01 Профиль

Инженер, который отвечает за результат, а не за строчки кода

Последние пять лет работаю над «Своими Финансами» — розничным контуром РСХБ. Мой кластер — карты: выпуск, заявки, счета, прелогин, АРМ администратора. Это не один SPA, а набор веб-модулей, которые живут внутри мобильного приложения и портала: у них общий контракт с нативной оболочкой, общая дизайн-система и независимые релизы.

Моя работа — держать этот контур управляемым: проектировать контракт модуля, выбирать стек, выводить легаси по слоям, ставить тесты, где регресс дороже всего, и разбирать инциденты до причины, а не до симптома. Параллельно веду ревью MR всего кластера и договариваюсь о правилах качества, которые команда реально соблюдает.

До банка прошёл путь от PHP-бэкенда сайтов администрации до микрофронтендов и мобильной разработки в логистическом продукте, где я же поднимал серверы, бэкапы и мониторинг. Отсюда привычка смотреть на фронтенд вместе с инфраструктурой: сборка, деплой, квоты и логи — часть фронтенд-задачи.

Как я работаю

01Сначала контракт, потом код

Контракт веб-модуля и API фиксируются до UI. Так интеграция с нативной оболочкой и бэкендом не съедает последнюю неделю спринта.

02Легаси выводим частями

Не переписываю модуль целиком: слой за слоем, с тестами на каждом шаге. Так прошла миграция состояния в четырёх модулях без остановки релизов.

03Метрика вместо мнения

Регресс ловится тестом, инцидент — логом и графиком, качество — гейтом. Если нечем измерить, сначала строю измерение.

04Рутину автоматизирую

Деплой, ревью, проверки качества, отчёты. Скрипты и агенты делают это быстрее и не забывают — а я занимаюсь архитектурой.

02 Опыт

12 лет, шесть команд, один принцип — доводить до прода

Полная хронология; последние роли раскрыты подробно.

ноябрь 2021 — сейчас

Екатеринбург · удалённо

сейчас

Lead Frontend Engineer · главный специалист

РСХБ · РСХБ-Интех → РСХБ-Экосистема

Лид компетенций по фронтенду кластера Daily Banking → «Свои Финансы. Карты». Архитектура веб-модулей, код-ревью, релизы, разбор инцидентов.

  • Отвечаю за четыре продуктовых веб-модуля «Своих Финансов» — карты, заявки на дебетовые карты, прелогин и заявки по карточным счетам — и административную панель карточных продуктов; задаю техническое направление для 6–8 разработчиков.
  • Перевёл модуль карт с Redux Toolkit / RTK Query на Zustand + TanStack Query одним MR: 109 файлов, 475 тестов, без регрессий; тиражировал подход ещё в двух модулях (88 и 87 файлов, +957/−1054).
  • Спроектировал контракт веб-модулей с нативной Flutter-оболочкой: 31 запись протокола взаимодействия, 84 фича-тогла, единый контракт загрузки — модули релизятся независимо.
  • Перевёл e2e с Cypress на Playwright: визуальный регресс на 35 снапшотах в двух темах, моки федеративных модулей, стабильный прогон в CI.
  • Разобрал продовый инцидент в прелогин-модуле: нашёл исчерпание CFS-квоты на стенде, обосновал конфигурацию 700m CPU, 3 реплики и HPA 2–6 вместо «добавим памяти».
  • Держу процесс ревью кластера: 282 ревью и 287 задач Jira за год; ввёл локальный гейт качества — FSD-границы, мёртвый код, копипаста, доступность.
  • TypeScript
  • React 18
  • Module Federation
  • Zustand
  • TanStack Query
  • Playwright
  • SonarQube
  • дизайн-система банка

ноябрь 2018 — октябрь 2021

Москва · удалённо

Главный специалист отдела разработки

АНМАК · kidsway.city

Платформа сервисов для детских занятий: от фронтенда и мобильных приложений до серверов, бэкапов и деплоя.

  • Собрал платформу сервисов и перевёл её на микрофронтенды React: собственный рантайм загрузки модулей, дизайн-система на базе CoreUI, SCSS.
  • Рефакторил легаси: классовые компоненты → функциональные, внедрил Redux и async/await с JSON:API вместо разрозненных запросов.
  • Поднял инфраструктуру: CentOS и Debian, фильтруемый доступ, веб-сервисы, автоматические бэкапы БД и файлов, мониторинг Zabbix с алертами в Telegram, репликация MariaDB, свой деплой по вебхуку Bitbucket.
  • Переписал два мобильных приложения с Dart на React Native и выпустил их в Google Play и App Store.
  • Ревью кода джуниоров и постановка задач: Redmine, затем Trello.
  • React
  • Redux
  • Micro-frontends
  • React Native
  • SCSS
  • Linux
  • Zabbix
  • MariaDB

август 2015 — октябрь 2021

Каменск-Уральский

Инженер

Администрация города Каменска-Уральского

Сайт администрации и сайты муниципальных органов власти: бэкенд, поддержка, серверы.

  • Бэкенд сайта администрации и ряда сайтов местных органов власти на PHP, командная работа в SVN.
  • Поддержка и мониторинг серверов, дежурство по доступности городских ресурсов.
  • PHP
  • SVN
  • Linux

май 2020 — июль 2020

Нижний Новгород · удалённо

Программист

ООО «Линсофт»

Два React Native-проекта, ключевая особенность — работа с видео.

  • Воспроизведение и управление видеопотоком и видеофайлами в мобильных приложениях.
  • Администрирование сервера Debian под нужды проектов.
  • React Native
  • Video
  • Debian

ноябрь 2017 — ноябрь 2018

Москва · удалённо

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

АО «Вычислительные силы» · molot.ru

Высоконагруженный сервис: фронтенд и часть бэкенда.

  • Фронтенд сервиса на чистом JS + jQuery + CSS: Ajax-навигация без перезагрузки страниц, работа с высоким трафиком.
  • Backend на PHP CodeIgniter и администрирование GNU/Linux под задачи проекта.
  • JavaScript
  • jQuery
  • PHP
  • CodeIgniter
  • Linux

май 2016 — октябрь 2017

Москва · удалённо

Full-stack разработчик

PromoHolding

Высоконагруженные интернет-магазины и их продвижение.

  • Разработка решений для интернет-магазинов с высоким трафиком, поддержка большого объёма legacy-кода.
  • Администрирование серверов GNU/Linux.
  • PHP
  • JavaScript
  • MySQL
  • Linux

август 2014 — март 2015

Каменск-Уральский

Техник-программист

УПКБ «Деталь»

Первая коммерческая разработка — десктоп на C++.

  • АРМ поверки генераторов на C++ (RAD Studio): считывание данных с приборов и автоматическое формирование отчётов.
  • C++
  • RAD Studio

03 Проекты

То, что я строю для себя — и заодно проверяю на практике

Не «пет-проекты ради галочки»: инфраструктура, инструменты и автоматизация, которыми я пользуюсь каждый день.

Личная инфраструктура

devcv.ru

Свой сервер под Caddy с автоматическим Let’s Encrypt: Gitea, Verdaccio, CI-раннер, бэкапы на QNAP по расписанию, fail2ban, статические сайты. Здесь же живёт эта страница.

  • Caddy
  • Docker
  • Gitea
  • CI
  • Linux

Инструмент качества

quality-gate

Локальный гейт для веб-модулей: FSD-границы (steiger), мёртвый код (knip), копипаста (jscpd), циклы зависимостей (dependency-cruiser) и доступность по живой странице (Playwright + axe). Работает офлайн, по копии модуля в песочнице.

  • Node.js
  • Playwright
  • axe
  • AST

MCP-сервер

gitlab-mr-mcp

Сервер для ревью merge request’ов: собирает диффы по allowlist репозиториев, прогоняет правила и складывает находки в GitLab draft notes. Конфигурация и схемы — YAML + Zod.

  • TypeScript
  • MCP
  • GitLab API
  • Zod

Автоматизация

Умный дом без облака

Home Assistant на NAS, ZHA и Zigbee-устройства: кастомный quirk для SONOFF LMG21, автоматизация рулонных штор по свету и времени, локальный контур без внешних сервисов.

  • Home Assistant
  • ZHA
  • Python
  • Zigbee

AI-инфраструктура

Локальный LLM-стенд

WSL2 + llama.cpp на RTX 5080 и MLX на Apple Silicon: локальный инференс, eval-петля, агент с собственными скиллами и расписанием задач. Без подписок и утечки данных наружу.

  • llama.cpp
  • MLX
  • Python
  • Agents

Публичный инструмент

alfred-translate

Alfred Workflow для перевода RU↔EN: горячая клавиша, буфер обмена, релизы собираются GitHub Actions.

  • Alfred
  • Node.js
  • GitHub Actions

Бот-мост

tg-vk-transfer-bot

Двусторонний мост VK ↔ Telegram в Docker: текст и фото, дедупликация в SQLite, защита от петель пересылки.

  • Docker
  • Bot API
  • SQLite

Диагностика

vpn-monitor

Монитор корпоративного VPN на bash: проверка туннеля, ping и curl по списку хостов, уведомления, регрессионный харнесс на поддельных часах.

  • Bash
  • Testing
  • macOS

Ещё 90+ репозиториев в работе

04 Стек

Чем владею

Сгруппировано по задачам, а не по модности: от архитектуры состояния до сервера, на котором это работает.

Языки

  • TypeScript
  • JavaScript (ES2023)
  • PHP
  • C++
  • Bash
  • SQL

Фронтенд

  • React 18/19
  • Next.js (App Router, SSG)
  • Vue 3 / Nuxt 2
  • Gatsby
  • React Native
  • Module Federation
  • Web Components

Состояние и данные

  • Redux Toolkit
  • RTK Query
  • Zustand
  • TanStack Query
  • JSON:API
  • REST

Стили и дизайн-системы

  • SCSS
  • CSS-токены и темы
  • CoreUI
  • Дизайн-система банка
  • Адаптивная вёрстка
  • Доступность (WCAG)

Сборка

  • webpack
  • Vite
  • Rollup
  • lerna
  • Yarn workspaces
  • Turborepo

Тесты

  • Jest
  • Vitest
  • Playwright
  • Cypress
  • Визуальный регресс
  • axe

Качество кода

  • SonarQube
  • ESLint
  • Stylelint
  • steiger
  • knip
  • jscpd
  • dependency-cruiser

Инфраструктура и CI

  • Linux (Debian, CentOS)
  • Docker
  • Caddy
  • Nginx
  • GitLab CI
  • Gitea Actions
  • Zabbix
  • MariaDB

AI и агенты

  • LLM-агенты
  • MCP
  • Cursor
  • Claude Code
  • llama.cpp
  • MLX
  • Промпт-инжиниринг

05 Образование

База

2018

Прикладная информатика (бакалавр)

Курганский государственный университет · Технологический факультет

2014

Автоматизированные системы обработки информации и управления

Каменск-Уральский политехнический колледж

Русский
родной
Английский
B1 — документация, переписка, дейли

06 Контакты

Давайте поговорим о задачах, а не о стеках

Открыт к обсуждению Lead и Staff-ролей во фронтенде, а также задач на стыке фронтенда и инфраструктуры. Отвечаю в течение дня.