Рейтинг лучших ИТ-работодателей России 2019 от Хабр Карьеры: читать на Хабре
Обо мне

Пишу код с 12 лет, работаю в индустрии с 18-и (14+ лет опыт), за это время основывал свои стартапы и работал по найму в командах. Нахожу общий язык с людьми, не обламываюсь инициативно браться за любую работу, какая понадобится для успеха проекта.

Эксперт в JavaScript с многолетним опытом – писал свои ООП-фреймворки и бандлеры ещё во времена ES5. Активно использую все возможности современного ES6+ (async/await, async generators, Proxy, Symbol и т.п.), знаю как язык устроен «под капотом», писал свои транспиляторы.

Хорошо разбираюсь в низкоуровневых API браузера (DOM, Canvas, SVG, WebGL), делал разнообразные WYSIWYG-редакторы и компоненты со сложными анимациями. Есть хорошее понимание современного React (Hooks), Redux, TypeScript. Большой опыт HTML/CSS вёрстки, нередко приходилось заниматься UI/UX проектированием.

Использую Node с самых ранних версий, писал высоконагруженные системы (биржевых роботов), есть опыт оптимизации кода и написания своих модулей на C++. Имеется продолжительный опыт использования MongoDB, есть также понимание SQL.

Последние несколько лет активно использую Python для анализа данных (Pandas и т.п.), написал на последнем месте работы фреймворк на базе IPython Notebooks для быстрого построения внутренних админок, аналитики и автоматической генерации отчетности.

Есть обширная экспертиза в области криптотехнологий (криптовалюты, смарт-контракты) и биржевой торговли, последние годы работы связаны с этой областью.

В бекграунде есть C/C++, Java (Android), Objective-C — раньше занимался мобильной разработкой, но сейчас это не основная компетенция. Раньше также занимался 2D/3D графикой, с тех пор осталось хорошее понимание сопутствующих алгоритмов и математики.

Люблю функциональное программирование, всегда рад изучать новые технологии и подходы к разработке.

Легко учусь новому и умею «с нуля» разрабатывать сложные программные продукты. Неплохо говорю на английском. Есть опыт работы в международных командах и опыт создания и продвижения крупных open-source проектов (CCXT).

Автор многих высококачественных open-source модулей, использующихся в сотнях GitHub-проектов, в т.ч. и в популярных с десятками тысяч звёзд (напр. в ccxtGrafana, pnpm).

👉https://github.com/xpl

Резюме in Englishhttps://www.linkedin.com/in/xpl/

Блог: https://medium.com/@xpl
Telegram: https://t.me/v_gordon
Почта: rocket.mind@gmail.com

Профессиональные навыки
Участие в профессиональных сообществах
Опыт работы
1709 Co. — частный фонд специализирующийся на алгоритмическом трейдинге (Cayman Islands)
Москва
Co-Founder & Chief Architect
Май 2018 — По настоящее время (1 год и 10 месяцев)
  • Разработал первоначальный MVP (в 3-х месячный срок)

  • Руководил запуском и дальнейшей разработкой продукта 
    (в составе команды из ещё 2 разработчиков — со-основателей)

  • Продукт, созданный мной, это:

    Высокочастотная торговая система — робот + инфраструктура
    — Работает автоматически, непрерывно и круглосуточно
    — Взаимодействует с 20+ криптовалютными биржами по всему миру
    — Совершает десятки сделок в секунду
    — Одновременно оперирует 10+ валютными парами
    — Гибкая и быстрая разработка — не жертвуя надежностью
    — За 2 года — ни одной аварии с невозвратной потерей денег/данных

    В рамках моей деятельности я активно занимался как исследовательскими задачами и проектированием — так и непосредственной реализацией ключевых компонентов продукта  написав бóльшую часть кода в его нынешнем виде.

    Подробнее о том, что было сделано:

  • Слой глубокой абстракции разнородных биржевых API (Node)

    Интеграция и унификация 20+ разных API бирж (WebSocket + REST)
    — Интеграция децентрализованных бирж, Ethereum-контрактов (Web3)
    — Эмуляция отсутствующих функций API у отдельных бирж

    — Минимизация latency, оптимизация узких мест и потребления памяти
    — Параллелизация запросов через разные IP,  для обхода DDoS-защиты
    — Извлечение апдейтов из 2-5 разнородных источников одновременно
    — Мультиплексирование и гармонизация входящих потоков данных 
    — Эксплуатация индивидуальных особенностей бирж («хаки», трюки)

     Абстракция от асинхронности сети / бирж
    — Решается проблема с многозадачностью и разделяемыми ресурсами
    — Это достигается моделированием биржи «на шаг вперёд»
    — Совершаемые операции изменяют состояние модели немедленно
    — Используется мат. модель реальной биржи (matching algorithm, fees)
    — Учёт общих ресурсов (балансы, ликвидность) предотвращает конфликты
    Исполняющий процесс реализует запланированное состояние
    Обновляющий процесс сверяет приходящее из сети с ожидаемым
    — Несостоятельные версии отбрасываются эвристическим фильтром
    — Решается проблема с API бирж, посылающими неактуальные данные
    — Результат — радикальное упрощение прикладного кода:

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

    Абстракция от ненадёжности сети / бирж
    — Распознавание всевозможных сбоев и порчи целостности данных
    — Проактивная детекция сбоев (периодические пробные операции с API)
    — Отличение транспортных сбоев от логических
    — Менеджмент повторных попыток — для разрешения транспортных сбоев
    — Адаптивный throttling запросов, с учётом характера и частоты отказов
    — Непрерывная real-time оценка текущего качества работы биржи:

         … оценка достоверности синхронизированного состояния,
         … оценка работоспособности размещения/снятия ордеров,
         … оценка возможности без доп. задержек обновлять статусы ордеров
         … с учетом всего этого — безопасно ли делать taker- и maker-ордеры

    — Абстракция от специфичного для биржи представления сумм

    — Учёт всевозможных схем комиссий и бонусов
    — Учёт ограничений репрезентации чисел (точность)

  • Мультибиржевой торговый движок, сочетающий множество стратегий

    — Комбинирование всех бирж в единый супер-пул ликвидности
    — Одновременное исполнение всех имеющихся стратегий
    — Арбитраж, клонирование ликвидности, маркет-мейкинг
    — Возможность ребалансинга портфолио по наиболее выгодным ценам
    — Вычисление рисков из истории сделок и истории отказов API бирж
    — Оценка возможностей и принятие решений о сделках в real-time
    — Адаптивный throttling расчётов для недопущения буферизации I/O 
    — Детекция и коррекция последствий ошибочно совершённых сделок
    — Гибкая приостановка отдельных операций при штатных сбоях бирж
    — Автоматическое восстановление после крэшей (принцип "let it fail")
    — Многослойный контроль недопущения крупных убытков
    — Аварийная остановка в ситуациях, требующих ручного вмешательства

  • Юнит-, интеграционное, performance, fuzz- тестирование

    Test-driven development подход (Mocha, Chai)
    — Юнит-тесты для нетривиальных/критичных базовых функций
    — Тест-система для интеграций API реальных бирж

     Эмулятор биржи (matching engine + API) для интеграционных тестов
    — Имитация особенностей поведения и сбоев реальных бирж
    — Работа как в качестве embedded либы, так и отдельного WS-сервера

    — Тесты торговых стратегий — воспроизводимые пошаговые сценарии
    — Тестируется вся система целиком (с эмуляцией реальных бирж)
    — Применение оригинального flow control паттерна в hi-level коде...

        ... с режимом пошагового выполнения (через async-генераторы)
        ... позволяет писать воспроизводимые сценарии в тестах
        ... и тестировать нетривиальные аспекты торговых стратегий

    — Возможность дампить состояние на диск и возобновлять работу из него
    — При крэшах и подозрительных ситуациях дамп делается автоматически
    — Дамп может быть загружен в контролируемой тест-среде
    — Новые тест-кейсы формируются из крэш-дампов

    — Полноценный симулятор рынка для fuzz-тестирования
    — Имитирует хаос рынка в «ускоренной перемотке»
    — Быстро выявляет дефекты, не видные в заскриптованных тестах

    — Набор бенчмарков для замеров скорости менеджмента ордеров
    — Спец. instrumenting для замеров задержек логики в production-среде

  • Построение инфраструктуры: экономия, безопасность, надежность

    AWS + Git + Node + Python + MongoDB + Jupyter + Docker
    — Изоляция доступа с помощью файрволлов и политик безопасности
    — Интеграция 2FA HW-ключей (Yubikey) для доп. защиты SSH и крит. API
    — Оптимизация под дешёвые EC2 instances для экономии расходов
    — Без ресурсоёмких оркестраторов и брокеров сообщений
    — Реализация принципов loose coupling"let it fail" + graceful degradation
    — Сервисы спроектированы работать даже при отказе других сервисов

  • Легковесный адаптер для failsafe записи в MongoDB

     — Простой синхронный API – fire & forget
     — Пишет в in-memory журнал, персистится на диск
     — Периодически записывается в БД батчем, через BulkWrite API
     — Это даёт высокую скорость записи и низкую нагрузку на CPU
     — Pending записи не теряются (и не задваиваются) при крэшах
     — Записи не теряются при продолжительной недоступности БД / сети
     — Используется сервисами для записи логов, метрик, событий

  • Система оперативного оповещения о проблемах в компонентах системы

    — Даёт внятный фидбек при частых штатных отказах чего угодно
    — Микросервис для мониторинга issues (Mongo/JS + Python API)
    — Активные issues отображаются в Slack (самоудаляясь при снятии)
    — Простой fire&forget API для встраивания в прикладной код
    — «Канареечный» режим — срабатывание при отсутствии обновлений
    — Результат: видим в Slack лишь то, что важно прямо сейчас
    — Нет мусора из бесконечных однообразных лент маловажных событий
    — Всего $1 расходов в месяц и всего несколько сотен строк кода

  • Система быстрой разработки Python-приложений

    — За основу взята среда Jupyter (обычно применяемая в data science)
    — Внедрён подход — совместная интерактивная разработка в облаке
    — Упростили процессы — нет нужды воспроизводить среду локально
    — Минус трафик, плюс security — dev-доступ к БД изолирован в облаке
    — Выстроено окружение: набор плагинов + свой фреймворк и загрузчики
    — Получили интерактивные блокноты IPython «на стероидах», умеющие:

        … общаться с другими компонентами инфраструктуры через спец. API
        … выводить "ad-hoc" UI-виджеты и графику в REPL манере
        … заменять наколенные CLI-утилиты для ежедневных сервисных задач
        … переиспользоваться в качестве модулей и инлайн-макросов
        … запускаться как приложения – для админок и интерактивных отчётов
        … работать как фоновые задачи/сервисы (в качестве back-end)
        … сигнализировать персоналу о проблемах c помощью issues API
        … синхронизироваться в общий монорепозиторий кода в Git

  • Непрерывная синхронизация и анализ истории событий

    — Абстракция механизмов пагинации в historical data API бирж
     Агрегация и унификация разнородных данных о счетах и транзакциях
    — Конвейеры для инкрементального обсчёта 50+ Гб данных в MongoDВ
    — Непрерывный аудит (сверка) балансов и истории сделок/транзакций
    — Выявление пробелов и несоответствий в синхронизированных данных
    — Полуавтоматическое восстановление целостности с ручным контролем
    — Расчёт программ лояльности, приобретений и трат бонусных очков
    — Уведомления о расхождениях ожидаемых комиссий с реальными
    — Классификация типов сделок с помощью метаданных + эмпирически
    — Генерация отчетности о прибылях и убытках по разным направлениям
    — Визуализация, интерактив (IPythonMatplotlibBokeh, Vega)
    — Анализ эффективности деятельности торговых алгоритмов
    — Анализ убытков: отделение факторов рынка от дефектов алгоритмов
    — Анализ прибылей и рисков с детализацией до отдельного аккаунта
    — Оптимизация аллокации капитала по биржевым аккаунтам и валютам

  • Автоматизация управления 150+ аккаунтами на 20 биржах

    — Безопасное хранение паролей, ключей и иных данных аккаунтов
    — API и GUI для безопасного редактирования чувствительной информации
    — API и GUI для взаимодействия с историей правок (поверх Git)
    — API и GUI для быстрого переводов средств между аккаунтами
    — Подключение Puppeteer для автоматизации действий через веб-UI
    — Обход защиты бирж (взлом CAPTCHA, обход детекции автоматизации)
    — Автоматизация email-подтверждений от бирж
    — Автоматизация 2FA-процедур для авторизации на биржах и операций
    — Расчет комиссий и лимитов налагаемых при выводах и вводах денег
    — Сопоставление истории бирж для выявления межаккаунтных переводов
    — Автоматическая и ручная маркировка переводов метаинформацией
    — Оповещения о неопознанных транзакциях
    — Шифрование резервных копий репозитория

  • Генерация ежегодной налоговой отчётности

    — Расчёт налогооблагаемой прибыли методами FIFO и LIFO
    — Учёт специфики налогового законодательства США
    — Учёт специфики криптовалютной среды (e.g. airdrops)

  • А также...

    — Ведение внутреннего wiki, in English
    — Документирование инструментов и процессов
    — Документирование архитектуры и алгоритмов
    — Ежедневная коммуникация с англоговорящими стейкхолдерами
CCXT — CryptoCurrency eXchange Trading Library
Москва
Co-founder / Core Contributor
Март 2016 — Май 2019 (3 года и 3 месяца)

Участие в создании популярной (12k звёзд на GitHub) мультиязычной open-source библиотеки для торговли на 120+ крипто-биржах.

— Ключевые архитектурные решения
— Разработка алгоритмов
— Обкатка на реальных торговых системах в production
— DevOps (CI/CD пайплайн, мультиязыковые тесты)
— Копирайтинг (документация, промо-материалы, SEO)
— Разработка «Программы Сертификации» бирж
— Разработка бизнес-предложений (реклама, интеграции)

👉https://ccxt.trade

Мы — небольшая компания неплохих людей с большими планами и тенденцией к превращению в среднюю компанию с гигантскими планами.
PK Management (President Kids)
Москва
Ведущий разработчик
Май 2014 — Январь 2015 (9 месяцев)

Разработка системы внутренней автоматизации деятельности модельного агентства:

— JS / Node.js / MongoDB / HTML / CSS
— Проектирование UI/UX
— Разработка моделей данных
— SPA интерфейс (динамический роутинг, реалтайм обновление данных без перезагрузки страницы)

А также дизайн и разработка «продающего» сайта:

https://youtu.be/lrCIYQQNfsw

— Виртуализация скроллинга, no pagination
— Динамическая подгрузка фото/видео
— WYSIWYG редактор для блога с drag&drop
— Интерактивные анимации

Производство и монтаж рекламного оборудования
Старший разработчик / Ведущий разработчик
Январь 2010 — Май 2014 (4 года и 5 месяцев)

— Мобильные приложения (iOS / Android / Windows Phone)
— POI терминалы для выставок (C++ / Qt / HTML5 / CSS / JS)
— Front end веб разработка
— Проектирование UI/UX
— ERP-система для внутреннего использования (ExtJS)

Проекты: burningheads.ru/portfolio

RealityGirl.ru (интернет-реалити-шоу, ныне прекратило деятельность)
Москва
Frontend разработчик
Октябрь 2008 — Май 2009 (8 месяцев)

— Интеграция вёрстки с серверным кодом
— Программирование интерактивных элементов страницы
— Разработка административных интерфейсов
— Разработка WYSIWYG редактора для блогов

Интерактивный Образ (iimage)
Москва
Ведущий разработчик
Апрель 2008 — Сентябрь 2009 (1 год и 6 месяцев)

В сверхсжатые сроки (3-4 мес.) разработка многопользовательского симулятора-тренажера ГИМС для подготовки судоводителей маломерных судов:

— Высокоуровневая логика (Quest3D)
— Биндинг физики (C++ / PhysX)
— Моделирование реалистичной физики судна
— Сетевой слой (синхронизация состояния)
— Шейдеры погодных эффектов, смена времени суток
— Система виджетов для UI
— WYSIWYG редактор миссий
— Система ролей пользователей (учитель, ученик)
— Поддержка устройств ввода
— Мультимониторный рендеринг

https://youtu.be/k1Mxrxgv9nQ

А также:

— Разработка 3D геоинформационной системы (C++ / Direct3D)
— Разработка и поддержка сайта компании (Python / Django)

Многокино
Москва
Flash/Flex программист
Март 2008 — Апрель 2008 (2 месяца)

Дизайн и реализация клиентского интерфейса и админки для POS-терминала продажи DVD фильмов.

Picamatic.com (продан, ныне нефункц.)
Москва
Со-основатель / Frontend Engineer
Март 2008 — Июль 2008 (5 месяцев)

Разработка популярного хостинга картинок с инновационным one-click / drag&drop интерфейсом. Один из первых в мире хостингов с AJAX загрузкой без Flash-вставок и без регистрации.

https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Picamatic-screenshot.png
https://www.pcmagazine.ru/columns/detail.php?ID=31605
http://habrahabr.ru/post/22198/

ООО ИТЛ
Москва
Программист (3D графика)
Август 2005 — Май 2008 (2 года и 10 месяцев)

Разработка виртуального тура по Московскому Кремлю и Алмазному Фонду России.

— Разработка 3D движка (C++ / Direct3D / HLSL)
— Разработка системы UI
— Система рендеринга текста для арабского и китайского языков
— Toolchain для художников (интеграция с 3D Studio Max и т.п.)
— Система скриптов/плагинов для движка (C++/CLI, C#, .NET)

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

Ушел с первого курса работать в стартап :)