Опыт работы

2024 — Present

Senior Frontend Developer

Островок!

  • Работал над сервисом бронирования отелей Ostrovok.ru
  • Переносил легаси-код с Google Closure на Next.js, сокращая техдолг и упрощая дальнейшую разработку.
  • Увеличил скорость загрузки наиболее важных страниц, сократив их размер ≈ на 45%.
  • Внедрил серверные тайминги для анализа загрузки страниц и визуализировал метрики в Grafana, что позволило отслеживать реальные задержки рендеринга.
  • Внедрил кастомные метрики рендеринга (от запроса до отображения контента) в Prometheus и Grafana, что дало команде релевантный мониторинг производительности вместо формального LCP.
2023 — 2024

Lead Frontend Developer

Perlem

  • Участвовал в развитии Perlem.ai — цифровой системы для школ и внешних образовательных проектов.
  • Разработал и внедрил систему для локализации интерфейса
  • Реализовал функционал загрузки медиафайлов с телефона в чат на компьютере через QR-коды.
  • Создал интерфейс для работы с уведомлениями.
  • Писал автотесты (unit-тесты, скриншотные тесты), участвовал в поддержке качества продукта.
2021 — 2023

Frontend Developer

Яндекс

  • Участвовал в развитии крупных сервисов экосистемы Яндекса: Телемост, Документы, Яндекс 360 для бизнеса.
  • Реализовал редизайн ключевого интерфейса подключения к звонку в Яндекс Телемосте и внедрил систему модерации звонков.
  • Сделал мобильную версию сервиса просмотра документов.
  • В Яндекс 360 для бизнеса разработал функционал:
  • Архив писем — просмотр рабочей переписки сотрудников.
  • Промокоды — возможность оплаты тарифов со скидками.
  • Офисы и переговорки — бронирование переговорок через Яндекс Календарь.
  • Участвовал в создании промо-лендингов для экосистемных сервисов.
  • Писал автотесты, участвовал в ревью кода, оптимизации и повышении качества продукта.
  • Настраивал Nginx, работал с Docker для локальной разработки и деплоя.
2015 — 2020

Junior Full-stack Developer

ООО «Девпоинт»

Работал над «Культурный регион» — сервисом для популяризации культурных мероприятий в регионах России (афиши, события, интеграции с учреждениями культуры). Участвовал в развитии 2do2go.ru — одной из платформ для поиска событий, досуга и активностей в городе (афиши, подборки, рекомендации). Принимал участие во всех этапах разработки:

  • проектирование архитектуры
  • фронтенд (JS/React)
  • бэкенд (Node.js)
  • работа с базами данных (PostgreSQL/MongoDB)
  • интеграции с API
  • тестирование и оптимизация производительности фронтенда и бэкенда
  • настройка CI/CD
  • взаимодействие с дизайнерами, аналитиками и заказчиками
  • предложение улучшений UX/UI

Мои проекты

🔒 Приватные проекты

Онлайн-тренажёр для развития музыкального слуха, точности попадания в ноты и тренировки вокала. Использует виртуальное пианино, голосовой анализ и режимы самостоятельной практики для эффективного обучения музыке.

JavaScript

💻 Open Source проекты

CLI-утилита для генерации множеств FIRST, FOLLOW и PREDICT, помогает при разработке собственных языков программирования по LL(1)-грамматике.

⭐ 131 🔀 11 Node.js • LL parser

Онлайн-текстовый редактор для написания LL(1)-грамматик с генерацией множеств FIRST, FOLLOW и PREDICT на основе утилиты first-follow. Позволяет визуально создавать и тестировать грамматики прямо в браузере.

⭐ 131 🔀 11 React • Draft.js

Плагин для Babel, добавляющий альтернативный синтаксис доступа к props в styled-components. Позволяет писать более выразительный и удобный код при работе со стилями компонентов.

⭐ 3 🔀 0 Babel • Styled-components

Простая шаблонизирующая система, созданная для обучения и понимания работы современных веб-приложений. Позволяет преобразовывать HTML-разметку с данными в готовый HTML, реализуя основы собственного фреймворка.

⭐ 0 🔀 0 JavaScript

🤝 Вклад в другие Open Source проекты

Внес вклад в инструмент для анализа размера JS-бандлов и контроля производительности.

  • Добавил проверку отсутствующего параметра PR #188
  • Реализовал аргумент командной строки для поддержания очистки директории перед каждым запуском. PR #180
⭐ 6.8k Node.js

Исправил баг с «залипающей» полосой загрузки при мгновенной смене props. PR #55

⭐ 937 React

Реализовал поддержку ES Modules, что позволило использовать библиотеку в приложениях с конфигурацией и зависимостями на ESM. PR #62

⭐ 82 Node.js

Менторил разработку styled-media-helper — утилиты для управления media queries в styled-components. Был основным ревьюером кода, участвовал в формировании API библиотеки.

⭐ 76 Styled Components

Добавил поддержку pre и post скриптов, расширив возможности конфигурации. PR #5

⭐ 8 Node.js

Образование

2016 — 2018

Магистратура

Направление: «Программная инженерия»

Университет: БГТУ им. В. Г. Шухова

2012 — 2016

Бакалавриат

Направление: «Программная инженерия»

Университет: БГТУ им. В. Г. Шухова

О моих навыках

Frontend

🎨
  • Работал с React, Vue, Angular, Backbone, Google Closure и Next.js.
  • Разрабатывал приложения на чистом (vanilla) JavaScript.
  • Фреймворк не имеет значения. Важны принципы.
  • Разрабатывал собственный фреймворк для изучения приципов.

Backend

⚙️
  • Разрабатывал серверные приложения на Node.js и Express.js.
  • Опыт работы с MongoDB и PostgreSQL.
  • Самостоятельная реализация SSR для веб-приложений.

DevOps

🚀
  • Настраивал сервера для веб-приложений.
  • Писал конфигурации Nginx.
  • Занимался мониторингом производительности: собирал метрики и строил дашборды.

Testing

🧪
  • Писал unit-тесты.
  • Разрабатывал UI-тесты.
  • Настраивал скриншотные (visual regression) тесты.
  • Писал end-to-end тесты для проверки бизнес-логики через интерфейс.

Менторинг

👥
  • Участвовал в найме разработчиков.
  • Обучал стажёров и помогал им выходить на продуктивный уровень.
  • Онбордил мидл-разработчиков в проекты и процессы команды.

Soft Skills

👥
  • Выступал с техническими докладами на внутренних конференциях компании.
  • Проводил код-ревью и обсуждения архитектурных решений.
  • Вёл технические обсуждения с продуктовой командой и дизайнерами.