Frontend-разработчик и технический лидер. С 2019 года совмещаю непосредственную разработку с руководством frontend-командами. Основной стек — React, Vue.js и TypeScript.
Разрабатываю корпоративные веб-приложения со сложными формами, реестрами, картографией и электронной подписью. Занимаюсь архитектурой frontend, общими компонентами, тестированием и модернизацией приложений.
АСУ ОДС 2.0 — управление объектами городского хозяйства Москвы. В роли Lead Frontend Developer руководил разработкой интерфейсов реестров, паспортизации, согласований и отчётности. Развивал общие компоненты, сложные формы и таблицы, работал с картографией и электронной подписью КриптоПро. Перевёл сборку на Vite, обновил React и тестовое окружение, восстановил Storybook.
React · TypeScript · TanStack Query · Material UI · React Final Form · OpenLayers · Vitest
АИС «Таксомотор» — реестры такси, перевозчиков и разрешения на перевозки. В роли Lead Frontend Developer руководил frontend-разработкой: развивал архитектуру и общие компоненты, реализовывал ключевые пользовательские сценарии и интеграцию с сервисом электронного подписания документов.
React · TypeScript · TanStack Query · Ant Design
Brixby — зарядка электромобилей. Руководил frontend-разработкой клиентского веб-приложения для запуска зарядки и оплаты зарядных сессий. Совмещал техническое лидерство с непосредственной разработкой ключевых пользовательских сценариев.
Vue.js
От данных на дайв-компьютере до истории, которую хочется сохранить.
Разрабатываю Depthline — визуальный журнал погружений: Android-приложение, интерактивный лендинг и серверную веб-платформу. Проект объединяет моё увлечение подводным миром и разработку продукта целиком — от работы с устройством до интерфейса, сайта и выпуска обновлений.
Погружения с часов становятся наглядным личным журналом. Загрузка со Scorpena Alpha по Bluetooth LE, профили глубины и температуры, календарь и фридайв-сессии. Локальная база хранит историю на телефоне; импорт и экспорт UDDF, резервные копии и PDF-логбук помогают переносить и сохранять данные. Карточки сессий для ленты и сторис превращают результат тренировки в изображение, которым удобно поделиться.
Flutter · Dart · Riverpod · SQLite · Bluetooth LE
Знакомство с приложением начинается с ощущения глубины. Адаптивный лендинг с собственной WebGL-анимацией волн, переходами между сценами и шкалой глубины. Реальные экраны приложения, видеоуроки и короткие инструкции ведут посетителя от первого знакомства к установке. Отдельные страницы про логбук, UDDF и Scorpena Alpha, метаданные и sitemap готовят сайт к поисковому продвижению.
JavaScript · HTML / CSS · WebGL / GLSL · SEO
За презентацией продукта — инфраструктура его развития. Объединил лендинг и серверную часть на Laravel: страницы продукта и история версий, доставка APK и видео, API событий и инструменты статистики. Настроил проверки в CI и автоматическую публикацию сайта с резервным копированием, миграциями и возможностью отката кода.
Laravel · PHP · MySQL · Docker / Sail · GitHub Actions
Мой вклад: продуктовые сценарии и UX/UI, мобильная и веб-разработка, интеграция с оборудованием, визуализация данных, тестирование и CI/CD — полный цикл работы над собственным продуктом.
Открыть сайт → · История версий и APK →
Веб-приложения, картография, тестирование, 3D-графика и мобильная разработка — технологии из моих рабочих и личных проектов.
Учебный опыт с Angular 2.
Работаю в Neovim на раздельной клавиатуре. Развиваю собственные конфигурации редактора и настраиваю инструменты под свой рабочий процесс.
| Репозиторий | Описание |
|---|---|
| nvimVScode | Персональная конфигурация Neovim для веб-разработки |
| AstroNVim v4 config | Моя настройка AstroNvim v4 |
|
Создал русскую документацию для фреймворка |
|
| Пакет | Скачиваний | Описание |
|---|---|---|
| shallowly | Modern shallow renderer for React 18+ | |
| color-picture | Получение среднего цвета изображения | |
| lazy-with-preload | React lazy с предзагрузкой | |
| file-signature-in-react | Компонент для подписи файла ЭЦП | |
| crypto-pro-cadesplugin | API для КриптоПро | |
| cuon-matrix | Матрицы для OpenGL/WebGL | |
| prettier-plugin-delete-eslint-disable | Удаление eslint-disable |
| Проект | Превью |
|---|---|
| 3D Audio Visualizer | Three.js визуализация аудио |
| Scroll Animation | Скролл эффекты на Three.js |
Кандидат в мастера спорта по стрельбе из блочного лука. Занимаюсь яхтингом, виндсерфингом, фридайвингом и подводной фотографией. Обладатель медали регаты «Гонка на приз памяти Дыбова» (2026).
Увлечение погружениями стало основой моего проекта Depthline — визуального журнала для фридайвинга и дайвинга.
"Мастерство — это не 10 000 разных выстрелов. Это один выстрел, повторённый 10 000 раз."
"Я не слишком хороший программист. Но я программист с хорошими привычками"
— Кент Бек
✦ Самый лучший код — не написанный код
✦ Самый большой грех — переоптимизация
✦ Код должен легко умирать
✦ Код должен быть простым в чтении и понимании
✦ Правило пионера: оставляй код лучше, чем он был
✦ Безумие — делать одно и то же и ждать разных результатов
✦ Код без тестов — это legacy код
🌐 bad4iz.ru — мой личный сайт: заметки о жизни, прочитанные книги и интерактивные финансовые калькуляторы.
| 📚 Прочитанные книги | bad4iz.ru/books-read |
| 🎙 Подкаст Веб-стандарты | Выпуск на YouTube |
| 🎓 Курс по React Query | YouTube Playlist |




