Обо мне

Программирую практически с детства, c 1 курса института начал подрабатывать PHP-программистом, общий опыт работы - около 11 лет. Большую часть времени работал со связкой php/symfony/doctrine, последние полгода трудился над проектом на node.js (подробнее - в разделе "опыт работы"). Одинаково люблю php, node.js и разработку на фронте, заинтересован в работе с современном frontend-стеком: react/typescript/webpack/babel/scss и т.д.

Профессиональные навыки
Участие в профессиональных сообществах
Опыт работы
World of Minesweeper
Москва
Основной разработчик
Ноябрь 2018 — По настоящее время (10 месяцев)

Сайт: https://minesweeper.online

Стек технологий: Node.js, Socket.io,  MySQL, Redis, jQuery, Sentry.io

Сделан полностью мной, без посторонней помощи (не считая переводов на другие языки). На первый взгляд проект простой, но на самом деле он содержит много интересного "под капотом":

  • Распределенная инфраструктура: 1 главный сервер в Европе и 17 игровых серверов (дешевых VPS по 5$) для обеспечения минимальной задержки по всему миру. Централизованный деплой, мониторинг серверов, letsencrypt на каждом сервере.
  • Настоящий web-realtime, режим наблюдения за игрой других игроков в реальном времени, чат.
  • Оптимизация БД: на данный момент сыграно больше 180 миллионов игр, все они участвуют в нескольких десятках рейтингов, все тщательно покрыто индексами и кешем, ни один запрос не выполняется больше 300мс.
  • SPA, изоморфный рендеринг на сервере, дополнительные SEO-тексты на страницах для поисковиков и ботов, генерация превьюшки станиц, состоящей из скриншота игры "на лету".
  • Продуманная система переводов. Каждый желающий может пополнить таблицу переводов, которая одной командой конвертируется в js-файл.
  • Интеграция с Google analytics, adwords, search-console - отправляются события, конверсии, собираются аудитории.

  • Несколько продвинутых математических алгоритмов: собственный бот с высоким винрейтом, генерация карт для режима "без угадывания".
  • Собственная виртуальная валюта со стабильным курсом.
IP телефония, связь для бизнеса
Ведущий программист
Март 2011 — Ноябрь 2018 (7 лет и 9 месяцев)

Сайт: https://sipuni.com

Стек технологий: Symfony, Doctrine, MySQL, Redis, Git, jQuery


С нуля создали огромный сервис IP-телефонии:

  • 276 тыс строк php-кода
  • 215 таблиц в БД
  • собственная стойка из 8-ми серверов


Начинали втроем, потом команда разработки разрослась до 7 человек. Я выполнял роль тим-лида, следил за качеством кода, продумывал архитектуру проекта, собеседовал новых сотрудников. Следующие части сайта сделаны полностью мной:

  • Главная "фишка" проекта - конструктор схем связи: видео-демонстрация.
  • Статистика звонков: видео-демонстрация.
  • Обширная админка (на sonata-project)
  • Документооборот: загрузка, подтверждение и генерация различных документов и договоров
  • Система оплаты, интеграция с платежными сервисами
  • Агентская схема: расчет вознаграждений, ЛК агента
  • Локализация проекта средствами symfony/locale
  • Авторизация и система делегирования полномочий аккаунта отдельным представителям (можно, например, бухгалтеру выдать доступ только в раздел оплаты, а технарю - в настройки связи)
  • Партнерские подсайты: у больших партнеров есть своя версия сайта и своя админка, где они ведут своих клиентов. Например, ВестКолл.
Activiti
Москва
Программист
Июнь 2006 — Июль 2009 (3 года и 2 месяца)

Делали разные сайты на заказ, в основном интернет-магазины. Хороших фреймворков в том время еще не было, поэтому работали на Битриксе.

Стек технологий: PHP, Битрикс, MySQL, JavaScript, jQuery, HTML, CSS

    Высшее образование
    Московский Авиационный Институт (Национальный исследовательский университет)
    Москва
    Факультет: Прикладной математики и физики
    Июнь 2005—Март 2011 (5 лет и 9 месяцев)