О себе
Привет, я Михаил — веб-разработчик с более чем 10-летним опытом.
Создаю сайты, CRM, сервисы и веб-приложения для бизнеса и стартапов.
Образование
Высшее техническое, специальность 230101 «Вычислительные машины, комплексы, системы и сети», квалификация: инженер.
Технологии
- Frontend: React, Vue 2 и 3, Angular, Next.js, TypeScript, JavaScript
- Backend: Node.js, PHP (Laravel)
- Базы данных: PostgreSQL, MySQL, SQLite
- Инструменты и методологии: Git, Agile, Webpack/Vite, PWA, a11y, UI/UX
- Дизайн и графика: Figma, Pixso, Blender, Inkscape
Опыт работы
Октябрь 2020 → Настоящее время
Должность
Frontend Developer
Проект
Сервис аутентификации: вход по логину/коду/телефону/QR/Push/WebAuthn, регистрация и восстановление доступа и пр.
Задачи
- Инициировал миграцию на TypeScript.
- Реализовал вход по 5-значному коду, как в мобильном приложении.
- Реализация Secure Remote Password (аутентификация без передачи пароля).
- Настроил PWA (были задачи для offline и пр)
- Регулярные (раз в год) редизайны.
- Разработал самостоятельно FrontEnd для интеграции с УИ ЕБС.
- Постоянно работаю над доступностью (a11y) вместе с реальными пользователями скринридеров.
- Перенос контента из проекта в CMS, чтобы бизнес обновлял контент без привязки к релизам.
- Предложил и разработал скелетоны для улучшения UX.
- Предложил новый механизм работы с устаревшими браузерами.
- Реализовал FrontEnd-виджет для биометрической идентификации (взаимодействие с wasm-модулем) с красивыми UI-элементами и захватом видеопотока.
- Инициировал и внедрил скриншотные тесты на Playwright.
- Слежу за метриками производительности и оптимизирую код.
Выступал на конференциях
- Про миграцию проекта на TypeScript.
- Про реализацию входа по WebAuthn на проекте.
Стек технологий: React, Redux и TypeScript. Используем express в качестве mock-сервера.
Апрель 2019 → сентябрь 2020
Должность: Fullstack JavaScript Developer
Место работы: медицинская система автоматизации.
Задачи
- Поработал в равной степени над всеми частями этого проекта. С нуля разве что написал систему построения отчётов, а для этого пришлось разработать систему кэширования записей блокчейна.
- Рефакторинг UI-библиотеки.
- Делал с нуля или допиливал внутренние инструменты для тестировщиков.
Стек технологий: Angular, NodeJS, Express, Ethereum, TypeScript, PostgreSQL.
Июль 2017 → апрель 2019
Должность: Frontend Developer.
Обязанности: разработка FrontEnd-части различных сервисов.
Место работы: система автоматизации для сети ресторанов.
Задачи
- Модуль для автоматизации работы склада: справочники продукции/товаров/ингредиентов, проведение инвентаризаций и пр.
- Модуль для управления сотрудниками.
- FrontEnd и дизайн для нового сервиса Аналитики.
- Вынесение сервиса аутентификации из монолита.
- Оптимизация и рефакторинг старых модулей (legacy-код на jQuery, Backbone и CoffeeScript), которыми пользуются операторы, логисты, кассиры, повара и официанты, а также модуль фудкорта.
- Разработка UI-библиотеки.
- Разработка личного кабинета клиента на сайте.
- Внутренние инструменты для технической поддержки и операторов.
Параллельно курировал новичков, был скрам-мастером и участвовал в хакатонах.
Стек технологий: React, Vue.
Август 2014 → октябрь 2016
Должность: Fullstack Developer.
Место работы: веб-студия.
Задачи и проекты
- CRM для туристического агентства
- Новостной портал с панелью управления, API для мобильного приложения и пр.
- Новостной сайт с акцентом на видео
- Сайт агентства недвижимости
- Виджет для поиска туров (использовал API от sletat.ru).
- Помощь в проектах компании, где нужна индивидуальная разработка (всё, что сложнее использования jQuery-плагинов).
Стек технологий: PHP/CodeIgniter/MODX, MySQL, JavaScript/jQuery, git.
2008 → 2014
Первый сайт я создал примерно в 2008, где делился своими программами и статьями на компьютерную тематику. О карьере разработчика всерьёз не думал, всё это носило характер хобби, поэтому первый сайт за деньги я сделал только в 2011.
Всё это время зарабатывал преимущественно компьютерной графикой:
- несколько месяцев между учёбой работал в студии анимации.
- делал курсовые по 3D.
- делал 3D-иллюстрации на заказ.
- анимировал иллюстрации для интерактивных книг.