Обо мне

Занимаюсь веб разработкой со старших классов школы (начал это ещё тогда, когда это не было мейнстримом), и всё никак не могу сделать себе сайт-портфолио... 

Увлекаюсь коллекционированием перьевых ручек. Есть начальное музыкальное образование – кларнет (это наверное тут на тот случай, если вы играете в группе, и вам не хватает кларнетиста ¯\_(ツ)_/¯). 

Профессиональные навыки
Участие в профессиональных сообществах
Опыт работы
ООО АПИР
Казань
Frontend-разработчик / JavaScript разработчик
Октябрь 2018 — По настоящее время (2 года и 1 месяц)

В рамках работы в данной компании в качестве ведущего фронтенд разработчика были разработаны сервисы для ряда регионов в сфере управления ТКО. Данные сайты-сервисы включают в себя как закрытые, так и публичные части, разработанные на базе Vue.js. 

Присутствует: 

  • управление пользователями и системой ролей пользователей;
  • разграничение прав доступа в разделы;
  • экспорт и импорт данных;
  • вывод полезной информации на карту, с использованием Leaflet.js;
  • для работы с графиками использовался Apexchart.

Используемые инструменты в рамках стека разработки:

  • Vue-cli;
  • Vue-router (с динамическим импортом компонентов);
  • Vuex (с использованием модулей, vuex-persist);
  • ESlint (с самыми строгими настройками: "plugin:vue/recommended", "eslint:recommended"), Prettier 2;
  • PostCSS;
  • Axios (с использованием request cancelation);
  • Sentry (реализована выгрузкой файлов и source maps для каждого релиза на сервер Sentry для удобства отладки);
  • Git, Gitlab.

Интересный функционал, который был реализован для Leaflet в рамках проектов компании:

  • отображение тысяч кастомных маркеров на карте с помощью Canvas;
  • кластеризация маркеров;
  • возможность смены подложки карты (tile layer) на подложки из Яндекс карты, Google карт и др;
  • кастомные контролы карты для рисования произвольных фигур и определения площади/длинны этих фигур;
  • вывод на печать изображения карты со всеми отображаемыми на карте объектами.

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

Другой интересный функционал:

  • валидация многоуровневых форм (вложенные объекты);
  • система уведомлений пользователя, позволяющая как показывать их после выполнения асинхронных запросов (без блокирования UI), так и показывать уведомления полученные с сервера посредством websocket;
  • отложенный экспорт для большого количества данных реестров с использованием stomp/websoket (пользователь, выполняющий экспорт, получает уведомление о готовности файла для скачивания тогда, когда файл будет подготовлен для скачивания, без блокирования UI);
  • просмотрщик PDF файлов;
      Webloftdesigns
      Даллас
      Frontend-разработчик / JavaScript разработчик
      Февраль 2015 — Октябрь 2018 (3 года и 9 месяцев)

      Изначально работал над вёрсткой для шаблонов корпоративных сайтов на Wordpress, которыми в основном занималась компания в момент моего прихода. Затем профиль компании был расширен, и я начал заниматься проектами с использованием React. 

      Для первого проекта, было собрано собственное окружение для разработки на базе Webpack (так как на тот момент CRA не было). Работали со статическим генератором страничек Phenomic (который создавался как более быстрая альтернатива Gatsby) для получения SEO-френдли приложения. Работали в составе 2-х человек.

      Для последующих проектов мы отошли от генераторов статики, окружение было расширено и приближено к сегодняшнему набору инструментов CRA. Разработали несколько небольших приложений для автоматизации бухгалтерской деятельности и упрощения составления отчётов для нескольких компаний, которые общалась с бэкендом посредством REST API. Всё это в составе 2-3 человек в команде разработчиков.

      Последний разрабатываемый проект в этой компании – сервис для работодателей и соискателей.

      Используемые инструменты:

      • Webpack
      • React 15.6, Redux 4, React Router 4, Redux Thunk
      • redux-form, formik, revalidate
      • PostCSS, SASS
      • ESLint
      • Node.js
      • Apollo GraphQL (Queries, Mutations, Subscriptions, Pagination, Optiomistic UI)
      • Koa 2
      • MongoDB + Mongoose
      • Git, Bitbucket
      • Docker
      • Drone.io

      Работодатель мог производить импорт вакансий из крупных сторонних сервисов для размещения вакансий или добавлять вакансию на сайт самостоятельно. Соискатель же мог выполнять поиск по опубликованным на сайте вакансиям, генерировать резюме из предложенных макетов-шаблонов в виде PDF на основе данных из его профиля (информацию для которого можно было подгрузить из Linkedin), отправить его потенциальному работодателю, пообщаться с ним через внутренний чат, и так-же пройти собеседование по видео конференц связи прямо на сайте.

      Изначально над проектом работало 4 разработчика, в последствии я остался на проекте один, дорабатывал его и вносил в том числе существенные изменения. Поэтому я поработал как над клиентской частью, так и над бэкенд частью и в конечно итоге завершил и самостоятельно развернул проект на сервере заказчика (Nginx, Wordpress, MariaDB, MongoDB, статика для клиентской части,  статика для админ части).

      ReactJSReduxRestGraphQLWebpackNode.jskoajsMongoDBDocker
      Front-End Design Frameworks
      Нью-Йорк
      HTML-верстальщик / JavaScript-разработчик
      Июнь 2013 — Февраль 2015 (1 год и 9 месяцев)

      В рамках работы в данной компании была осуществлена разработка css-фреймворка/набора компонентов для Flat UI и Flat UI Pro. Так-же выполнялась поддержка англоговорящих пользователей продуктов.

      Данный продукт положил начало моде для целого направления в веб дизайне в США, и в последствии во всё мире. Включён в качестве примера в книгу "Creating Flat Design Websites" (возможно, это покажется немного пафосным, но это факт).

      Частная практика, работа без зачисления в штат
      Веб-разработчик
      Сентябрь 2008 — Июнь 2013 (4 года и 10 месяцев)

      Работал в качестве фрилансера / индивидуального предпринимателя в сотрудничестве с известными (и не очень) региональными агенствами специализирующимися на веб-дизайне/веб-разработке из Красноярска (Chipsa, SmartHead), Перми (Amado), Алматы и Москвы. В рамках этого сотрудничества я принимал участие в порядка 180-ти проектах различного масштаба, в качестве вёрстальщика, JavaScript разработчика и php-разработчика.

      Из этого сотрудничества был получен следующий опыт:

      • Вёрстка с различными требованиями (адаптив, микроразметка, pixel-perfect, различные браузеры начиная от IE6);
      • Работа с такими CMS как Wordpress, Bitrix – делал интернет-магазины, корпоративные сайты, личные сайты, блоги;
      • Автоматизация процесса разработки с использованием таких инструментов как Grunt, Gulp, Webpack;
      • Работа со следующими css препроцессорами: SASS, Stylus, Less, PostCSS (опробовал их все, что-бы понять их плюсы/минусы).
      • Использование таких инструментов улучшения качества кода как JSLint, ESLint;
      • Работа с Git (+ GitFlow), HG и SVN;
      • Работа с Github, Gitlab, Bitbucket;
      • Работа с такими системами управления задачами и проектами как Jira, Redmine, Basecamp, Trello;
      • Работа с такими графическими редакторами как Adobe Photoshop, Adobe Illustrator, Sketch, Figma;
      • Клиентская оптимизация для улучшения быстродействия и уменьшения времени загрузки приложений;
      • Также поработал с такими технологиями как ActionScript, Flex, XSLT.
      Высшее образование
      Институт космических и информационных технологий
      Красноярск
      Факультет: Информатики и вычислительной техники
      Август 2009—Июль 2013 (3 года и 11 месяцев)

      Бакалавр информационных систем