Nikita Mostovoy

Lead Frontend Developer

Работаю в команде Архитектуры HeadHunter.

Занимаюсь pet-проектами, часть из них open-source на GitHub @xnimorz: Набор инструментов для создания форматированных инпутов, promises A+/ES6, react ajax loader progress bar, useDebounce hook.

Выступаю на конференциях, пишу статьи, являюсь лектором и ментром в школе разработки HH, иногда отвечаю на StackOverflow

Контакты

  1. Telegram: @xnimorz
  2. nik.mostovoy@gmail.com
  3. Twitter: @xnimorz
  4. LinkedIn
  5. +7 (965) 297-03-79

Опыт работы:

HeadHunter

Lead frontend developer in Architecture team, Январь 2019 — по текущее время.

Мы работаем над инфраструктурой и архитектурой проекта, а также помогаем разработчикам писать код. Делаем так, чтобы хороший код было писать просто, а плохой — сложно. Для этого мы пишем кастомные babel плагины и eslint правила, работаем над инфраструктурой юнит-тестов и т.п.

Я занимаюсь:

  1. Архитектурой клиенского кода. Например: middleware для инжекта данных при страничных ajax запросах, батчевые экшены, их частичное применение в сторе, инструменты логирования и юнит-тестирования;
  2. Поддержкой и оптимизацией SSR на node.js + koa. Из интересного: безопасные релизы и отладка node.js из-за утечек памяти во время ошибок;
  3. Дизайн-налогом — это задачи от дизайна для UIToolKit и унификации сайта;
  4. Миграцией с vanilla + XSLT на React стек, в том числе и UIToolKit (я являюсь мейнтейнером этого UIToolKit c 2015 года);
  5. Performance сайта: логирование FMP, TTI с клиента, эксперименты для ускорения и замедления сайта в виде AB;
  6. Работой со всеми фронтенд-разработчиками компании (~30) для понимания мест, где есть сложности и улучшением этих мест;
  7. Менторством, собеседованием разработчиков.

Talantix

Lead frontend developer, team-lead, Май 2017 — январь 2019 (1 год 8 мес.).

Senior frontend developer, Январь 2016 — Май 2017 (1 год 4 мес.).

Талантикс — это "Jira" для HR. Талантикс включает в себя процесс подбора, обсуждения кандидатов с линейными менеджерами, назначение собеседований в календаре, получение аналитики и т.д. Проект полностью написан на React-Redux стеке.

Как разработчик:

  • Занимался разработкой Talantix с нуля. ES6, React, Redux, Babel, Jest, Enzyme, Webpack, адаптивная верстка, многомодульная система;
  • Построил архитектуру системы (как в целом, так и отдельные решения, например — переход на бизнес-логику в middleware, отказ от thunk);
  • Организовал нормализованное общение фронта и бека;
  • Создал календарь для HR с простановкой встреч, отображения в интерфейсе пересекающихся встреч (аналогично OutLook) по "сырым" данным;
  • Создал систему работы с кандидатами (переход по воркфлоу вакансии, обсуждение кандидата и т.д.);
  • Построил графики для отчетов в модуле подбора;
  • Создал телеграмм-бота на Python для поиска работы.

Как тимлид:

У меня в команде было 5 человек (фронтенд, бекенд разработка), в работе применяли гибкие методологии, использовали канбан-метод.

Занимался работой над задачами вместе с продактом (т.е. на этапе ProductDiscovery). Прорабатывали задачи с использованием Story mapping и Impact mapping. Подготавливал и давал обратную связь. Как положительную, так и отрицательную.

Достижения:

  • 85-я перцентиль лидтайма системы (команды), за почти 2 года составила 28 дней. Прогресс за год составляет с 38 дней до 28 дней соответственно.
  • Двое ребят из моей команды впоследствии стали тимлидами.

HeadHunter

Senior frontend developer, Август 2015 — Январь 2016 (5 месяцев)

Frontend developer, Июнь 2014 — Август 2015 (1 год 2 месяца)

Intern frontend developer, Февраль 2014 — Май 2014 (4 месяца)

Работал в команде поиска и в команде мобильного сайта.

Чем занимался:

  • Разработка основного сайта на стеке: vanilla, jquery, backbone, gulp, xslt, jinja, nunjucks, python;
  • Перевод сайта на БЭМ, унификация интерфейсов;
  • Code review, преподавание в школе разработчиков HH. Провел уже 5 школ.

Интересного: В команде поиска:

  • Переделал карту вакансий. Одно из первых SPA внутри многостраничного приложения. Работа с яндекс.картами, поисковые запросы и кластера, интегрированные с картами.
  • Развил UIToolKit Bloko, стал ее мейнтейнером. На момент моего прихода Bloko представлял 3 компонента и неудобную сборкуподключение. Сделал сборку через gulp, выкладывание в качестве npm пакета.
  • Создал большое количество новых унифицированных компонентов, заменил различные реализации на сайте HH на блоко компоненты;

В команде мобильного сайта реализовал резюмебилдер (SPA) для пользователя:

  • Сложная система взаимодействия различных полей форм, возможность их раздельного заполнения;
  • Инстурменты для синхроанной и асинхронной валидации
  • Мелкие доработки nunjucks (open-source JS адаптации шаблонизатора jinja)

Достижения:

  • На текущий момент Bloko имеет уже более 100 компонентов, которые задействованы на всех проектах HH;
  • Картой вакансий пользуется порядка 10 тысяч уникальных пользователей в неделю. (до этого 500 человек). С 15 года карта не претерпела серьезных изменений.
  • После запуска мобильной версии резюмебилдера повышение полного заполнения резюме с телефонов до 24%

Другие места работы одной строкой:

  • Smart Solution, Стажер-разработчик, Июль 2013 — Июль 2013
  • Вереск, Web-разработчик, Февраль 2013 — Март 2013
  • МЭСИ, FrontEnd разработчик, Январь 2013 — Февраль 2013

Образование

Высшее с отличием. Закончил МЭСИ (ныне РЭУ им. Плеханова) в 2015 году. Специальность математик-программист.

Ключевые навыки:

JS: ES6, TypeScript, React, Redux, Babel, Flux, vanilla, Node.js, Koa, Javascript MVC, Компонентный подход к разработке, Gulp, Webpack, создание плагинов под webpack, Jest, Enzyme, Mocha

CSS: Less, FCSS, CSS-in-JS

Прочее: Git, Sketch, Figma, Scrum, Agile, Kanban