О себе
Меня зовут Михаил, увлекаюсь программированием со школы, первый сайт сделал в 2008, а за деньги — в 2011. С 2014 года на постоянной основе занимаюсь коммерческой веб-разработкой.
Большую часть карьеры работал Fullstack-разработчиком, а в данный момент делаю упор на Frontend.
В свободное время изучаю Kotlin для разработки под Android (есть 2 мобильные игры: раз и два) и делаю пет-проекты.
Образование
Высшее техническое, специальность 230101 «Вычислительные машины, комплексы, системы и сети», квалификация: инженер.
Основной стек
- JavaScript (TypeScript, React, Vue, Angular).
- PHP (Laravel, а раньше Codeigniter и MODX).
- Node.js
Профессиональные навыки
- Языки: JavaScript/TypeScript, PHP.
- БД: MySQL, PostgreSQL, SQLite.
- CMS/фреймворки: Node.JS (4 года, 3 проекта), Laravel (1.5 года, 1 проект), MODX (8 лет, несколько сайтов), CodeIgniter (2 года, 3 крупных проекта).
- Вёрстка: HTML, CSS/SASS/PostCSS, БЭМ.
- Frontend: React/Redux (5 лет), Vue (2 года), Angular (1.5 года), Next.js (1 сайт).
- Графика: Blender, Inkscape, GIMP.
- Прочее: скрам (3 года), канбан (1.5 года), git, GNU/Linux, grunt/gulp/webpack, composer/npm.
Опыт работы
Октябрь 2020 → Настоящее время
Должность
Frontend Developer
Проект
Сервис аутентификации: вход по логину/телефону/QR/Push/WebAuthn, регистрация, восстановление доступа, deep-links и пр.
Задачи
- Полный редизайн: с классов на функции, новый дизайн, переписывание решений на нативном JS вместо свалки библиотек (lodash etc).
- Инициировал миграцию на TypeScript и рассказал об этом на внутреннем FrontEnd-митапе.
- Разработка с нуля FrontEnd для регистрации и восстановления доступа с помощью УИ ЕБС.
- Реализация Secure Remote Password (аутентификация без передачи пароля).
- Улучшение доступности (a11y): семантика, аудиокапча и пр.
- Шифрование пароля в при регистрации и восстановлении доступа.
- Перенос управления контентом в CMS (чтобы бизнес обновлял контент без привязки к релизам).
- Предложил и разработал Skeleton для улучшения UX.
- Изменил подход к формированию страницы для устаревших браузеров. Раньше она рендерилась в React-приложении :)
- Реализовал FrontEnd-виджет для биометрической идентификации (взаимодействие с wasm-модулем) с красивыми UI-элементами.
- Разметка всех сценариев для аналитики.
- Внедрение визуальных (скриншотных) тестов с помощью Cypress.
- Постоянно работаю над оптимизацией производительности: ленивая загрузка, сокращение рендеров и пр.
Стек технологий: React, TypeScript. Дополнительно используем node.js/express для mock-сервера.
Периодически выступаю на FrontEnd-митапах (про TypeScript и WebAuthn).
Апрель 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-разработчик.
Место: провинциальная веб-студия.
Задачи и проекты
- CRM для туристического агентства
- Новостной портал с панелью управления, API для мобильного приложения и пр.
- Новостной сайт с акцентом на видео
- Сайт агентства недвижимости
- Модуль для поиска туров (использовал API от sletat.ru).
- Помощь в проектах компании, где нужна индивидуальная разработка (всё, что сложнее использования jQuery-плагинов).
Стек технологий: PHP/CodeIgniter/MODX, MySQL, JavaScript/jQuery, git.
2008 → 2014
Первый сайт я создал примерно в 2008, где делился своими программами и статьями на компьютерную тематику. О карьере разработчика всерьёз не думал, всё это носило характер хобби, поэтому первый сайт за деньги я сделал только в 2011.
Всё это время зарабатывал преимущественно компьютерной графикой:
- несколько месяцев между учёбой работал в студии анимации.
- делал курсовые по 3D.
- делал 3D-иллюстрации на заказ.
- анимировал иллюстрации для интерактивных книг.