vadim-alferevvadim-alferev

Вадим Алферьев

Frontend Developer · Фронтенд · Старший (Senior)
От 200 000 ₽ · Не ищу работу
Возраст: 30 лет
Опыт работы: 7 лет и 1 месяц
Регистрация: 05.07.2012
Последний визит: 7 дней назад
Местоположение: Россия, Кострома
Войдите, чтобы посмотреть контакты пользователя

Обо мне

Frontend-разработчик на JavaScript/TypeScript с применением проверенных современных технологий.

Основной рабочий стек: Webpack, Git, React + Redux / Mobx, TypeScript, Jest, Sass, BEM, Zeplin / Axshare.
Кроме этого, в работе применяю (применял ранее) следующие технологии:

  • Frontend: ES6+, Babel, Vue, AngularJS, Backbone, jQuery, Less, Bootstrap, Foundation, Material Design, Canvas, WebSockets.
  • Backend: Nginx, Supervisor, ZeroMQ, Django, Tornado, PostgreSQL, MySQL, Redis, Memcache, Celery, Sentry.
  • А также: Bitbucket, GitLab, GitHub, Jira/Confluence, Trello, Youtrack, Jenkins, Docker.

7 лет занимаюсь коммерческой разработкой, участвовал в 6 крупных проектах и нескольких небольших. За это время удалось поработать, как над frontend, так и backend частью, кроме того, я нередко являлся и частично аналитиком/менеджером, общался с заказчиком, выяснял требования, ставил задачи себе и коллегам, делал оценку сроков. Последние пару лет над backend не работал, поэтому в данный момент вижу себя скорее как frontend-программист.

Своими наиболее сильными сторонами считаю:

  • Вникание в поставленную задачу и в цели, которые она преследует. Нередко оказывается, что ничего писать не нужно, задача либо уже решена, либо очень просто решается без программирования. Считаю, что идеальный код тот, которого нет.
  • Стремление писать максимально простой, структурированный, поддерживаемый код.
  • Большой опыт проектирования архитектуры приложений.

  • Приоритеты в работе:

    • Нацеленность на результат, разработку продукта, который несёт ценность для пользователей и приносит доход владельцу.
    • Сплоченная команда, члены которой, в идеале, являются не просто коллегами, а товарищами в обычной жизни, общение не ограничивается только работой.
    • Постоянная коммуникация в процессе работы с участниками команды, выполняющими другие роли. С backend-программистами - проектирование API и обсуждение мероприятий по оптимизации нагрузки со стороны frontend, с дизайнером - обсуждение UX, с управляющим звеном - оценка сроков, определение приоритетов, построение плана работ.
    • Наличие нескольких человек на одной части проекта (Frontend, в моём случае), чтобы была возможность обмениваться опытом, постоянно расти и помогать расти другим, принимать продуманные решения, делать code review.
    • Умеренный перфекционизм. Желание делать "идеально", но умение вовремя остановиться на "хорошо", если дальше будет слишком долго/дорого.

    Cтараюсь постоянно заниматься самообразованием, быть в курсе новых веяний в разработке ПО и глубже вникать в инструменты и технологии, которыми пользуюсь регулярно. Для развития профессиональных навыков использую:

    • Документацию по используемым инструментам/технологиям
    • Справочники, такие как MDNw3schoolscaniuse
    • Тематические онлайн-ресурсы, такие как Medium, Habr.
    • Книги. Из наиболее понравившихся отмечу "Идеальный программист" (Роберт Мартин), "Совершенный код" (Стив Макконнелл), "Рефакторинг" (Мартин Фаулер), "Человеческий фактор" (Демарко, Листер), "Не заставляйте меня думать" (Стив Круг)
    • Онлайн-курсы. В разное время использовал следующие площадки: Coursera, FreeСodeСamp, Stepic, Tuts+, Udemy, Khanacademy, Codecademy, Pluralsight и другие.
    • Конференции (РИТ++, YappiDays)

    Проекты, в которых принимал участие:

      Общалка Трещалка
      Приложение для знакомств, размещенное в нескольких социальных сетях. Имеет ряд встроенных мини-игр. Занимался fullstack-разработкой в паре с коллегой. Приложение было запущено в 2013 году, но оно по-прежнему популярно, сохранило немало постоянных пользователей, пришедших ещё в момент его старта.  

      Мафия Рулетка
      Карточная игра, чем-то похожа на смесь карточного Дурака и HearthStone. Также размещена в каталогах социальных сетей. Занимался fullstack-разработкой, большую часть времени как единственный программист на проекте. Игра не раз признавалась "Выбором редакции" в каталоге Вконтакте.

      Jackpot Слот Клуб
      Еще одна игра, разработанная для размещения в социальных сетях. В данный момент, к сожалению, недоступна.

      Ключевые задачи (по трем вышеперечисленным проектам):

      • Запуск в ряде социальных сетей (Вконтакте, Одноклассники, Мой мир, Фотострана, Facebook, Kongregate) и взаимодействие с их API (регистрация, платежи, посты на стену, приглашение друзей, уведомления и другое).
      • Проектирование микросервисной архитектуры на backend.
      • Проектирование архитектуры на frontend.
      • Проектирование API.
      • Тюнинг БД под большие нагрузки.
      • Оптимизация загрузки клиентами js, css и медиа-контента.
      • Сбор многочисленных метрик и игровых статистик по регистрациям, платежам, продажам, различной активности игроков "за игровым столом" и вне его. Большинство статистик собиралось, рассчитывалось и отображалось в админке в реальном времени.
      • Построение рейтингов, пересчитываемых в реальном времени.
      • Интернационализация. Мафия была переведена на 5 иностранных языков и запущена на Facebook и Kongregate.
      • Написание собственной урезанной ORM на Python для работы с асинхронным драйвером БД.
      • Написание ботов для игры разной сложности, в том числе для обучающей пошаговой игры.
      • Написание менеджера очередей для распределения игроков по игровым партиям, в зависимости от различных их игровых результатов.
      • Настройка системы обновления приложений на dev и prod.
      • Кастомизированная админка
      • Реализация игр на Canvas и CSS-анимациях.
      • Реализация обмена данными между игроками на WebSockets через backend. 

      Мафия Блиц
      HTML5-игра для мобильного каталога социальных сетей. В этом проекте код не писал, выступал как Frontend-lead.

      Ключевые задачи:

      • Участие в подборе тех. стека.
      • Принятие архитектурных решений.
      • Помощь команде из двух программистов на frontend с решением отдельных задач, наладка их коммуникации с backend-разработчиками и менеджером.
      • Code review практически всего кода на frontend.

      Пеликан
      Образовательная платформа. Принимал участие в проекте как Frontend-разработчик. Получил отличный опыт работы в команде из трёх человек на одном направлении (Frontend).

      Ключевые задачи:

      • Реализация настройки и прохождения задач для учеников типа "Раскраска". Сделаны на основе SVG и заливки участков выбранным цветом при клике по ним.
      • Добавление сайта на главный экран мобильного устройства.
      • Авторизация по QR-коду на мобильном устройстве.
      • Главный интерфейс для авторизованных родителей.
      • Участие в code review.

      Waitre
      Облачная ERP система для малого и среднего бизнеса. Занимаюсь разработкой Frontend-части. Большая часть функционала была написана до моего прихода, но с недоработками, поэтому основная работа заключается в доведении доставшегося кода до рабочего состояния, которое отвечает требованиям бизнеса.

      Ключевые задачи:

      • Анализ задач, полученных от заказчика: выяснение целей, деталей и требований к функционалу, декомпозиция и постановка задач в Jira.
      • Взаимодействие с backend-разработчиками при проектировании API.
      • Покрытие unit-тестами существующей кодовой базы и нового кода.
      • Рефакторинг значительной части написанного кода. Выделение базовых и повторно используемых компонентов.
      • Cистема предупреждений о необходимости заказа продуктов, на основе текущих остатков на складе.
      • Построение статистических графиков с помощью библиотеки Chart.js
      • Унификация и автоматизация построения статистических таблиц, на основе отданных API данных.
      • Оптимизация производительности при отрисовке таблиц с большим количеством строк, колонок и привязанных событий по клику/наведению на строки/ячейки.

      Участие в профессиональных сообществах

      Опыт работы

      Высшее образование

      • КГТУ-Кострома

        Костромской государственный технологический университет
        Кострома · 129 выпускников
        Автоматизированных систем и технологий
        Сентябрь 2007 — Июнь 2012 (4 года и 9 месяцев)

        Автоматизация технологических процессов и производств

      Дополнительное образование

      • Pluralsight

        Technology skills platform
        Advanced Typescript
        Апрель 2020 — Апрель 2020 ()
        Domain-Driven Design in Practice
        Март 2020 — Апрель 2020 (1 месяц)
        An AngularJS Playbook
        Сентябрь 2018 — Сентябрь 2018 ()
        AngularJS Best Practices
        Сентябрь 2018 — Сентябрь 2018 ()
        AngularJS Patterns: Clean Code
        Сентябрь 2018 — Сентябрь 2018 ()
        AngularJS: Get Started
        Сентябрь 2018 — Сентябрь 2018 ()
      • Ultimate Courses

        TypeScript Pro
        Апрель 2020 — Апрель 2020 ()
        Typescript masterclass (Todd Motto)
        Март 2020 — Март 2020 ()
      • Udemy

        Global marketplace for learning and teaching online
        Сан-Франциско и район залива · 446 выпускников
        Productive coding with WebStorm
        Март 2020 — Март 2020 ()
        React - The Complete Guide (incl Hooks, React Router, Redux)
        Май 2019 — Июнь 2019 (1 месяц)
        Learn Responsive Web Development from Scratch
        Апрель 2018 — Апрель 2018 ()
        Web Design for Beginners: Real World Coding in HTML & CSS
        Апрель 2018 — Апрель 2018 ()
        Make a Unity 2D Physics Game - For Beginners!
        Июнь 2016 — Июнь 2016 ()
        Learn How To Code: Google's Go (golang) Programming Language
        Май 2016 — Май 2016 ()
      • Frontend Masters

        Современные курсы по фронтенду
        Mastering Chrome Developer Tools v2
        Март 2020 — Март 2020 ()
        Advanced React Patterns
        Март 2020 — Март 2020 ()
      • Coursera

        Стопроцентное онлайн-обучение от лучших университетов и компаний мира
        Programming Mobile Applications for Android Handheld Systems
        Май 2015 — Август 2015 (3 месяца)
        Learn to Program: Crafting Quality Code
        Май 2015 — Июль 2015 (2 месяца)
        Beginning Game Programming with C#
        Март 2015 — Май 2015 (2 месяца)
        Gamification
        Январь 2015 — Март 2015 (2 месяца)
        R Programming
        Ноябрь 2014 — Январь 2015 (2 месяца)
        An Introduction to Interactive Programming in Python
        Сентябрь 2014 — Ноябрь 2014 (2 месяца)
      • MongoDB University

        Become a MongoDB expert by learning from the experts
        Нью-Йорк · 28 выпускников
        M101P: MongoDB for Python Developers
        Октябрь 2014 — Декабрь 2014 (2 месяца)
      • Stepik

        Образовательная платформа и конструктор онлайн-курсов
        Санкт-Петербург · 539 выпускников
        Алгоритмы и структуры данных
        Сентябрь 2014 — Ноябрь 2014 (2 месяца)