Обо мне

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

— Golang (также PHP, JS, Python)

— MySQL, PostgreSQL; Vertica, Clickhouse; Redis, Aerospike, VoltDB, Couchbase; Elasticsearch, Sphinx; Prometheus, InfluxDB; Hadoop.

— Kubernetes, Docker. И на железе и в облаках (GKE/GCE, AWS)

— Микросервисные архитектуры, профилирование и оптимизация кода под высокие нагрузки. RPC (gRPC), Event-driven (NATS, Kafka).

Опыт разработки более 15 лет

Опыт работы
Разработчик трейдинговой платформы
Санкт-Петербург
Golang Teamlead
Ноябрь 2017 — По настоящее время (1 год и 7 месяцев)

— Организация слаженной работы команды, оптимизация процессов разработки, обучение сотрудников

— Разработка микросервисов

— Kubernetes, CI&CD

Brabdev
 
Golang team lead, архитектор
Март 2016 — Ноябрь 2017 (1 год и 9 месяцев)

Разработка крупной RTB (SSP, DSP, DMP) с нуля.

— Дизайн, планирование и визуализация всех технических аспектов проекта.

— Руководство группой разработчиков. Координация разработки бэкенда, фронтенда и дизайна.

— Разработка API. API First подход.

— Микросервисная архитектура. Логирование, инструментинг, трассировка и метрики.

— Решение сложных архитектурных задач, подбор баз данных и технологий.

— Docker. Непрерывная интеграция и деплой.

— Разработка через тестирование. От юнит-тестов до функциональных, End-to-end и нагрузочных.

— Оптимизация под очень высокие нагрузки. gRPC, HTTP/2.

Traffic Stars
 
Разработчик на PHP, Go, JavaScript, DBA, аналитик
Ноябрь 2014 — Январь 2016 (1 год и 3 месяца)

— Проектирование и разработка высоконагружаемой системы статистики и аналитики.

Полное администрирование Vertica (установка, настройка, апгрейд, опыт в решении различных чрезвычайных ситуаций), проектирование базы данных под хранение и обработку действий пользователей с расчётом на большие объёмы (500 млн действий в сутки). Разработка универсальной структуры, позволяющей делать любые выборки цепочек действий пользователей (funnels) без использования join-запросов, со временем отклика менее 1 сек.

Составление всевозможных аналитических запросов и отчётов.

На Golang, по принципу SOA, были разработаны коллектор и ETL входящих потоков трафика с расчётной пропускной способностью 1млрд действий и метрик на одном сервере.

Настройка, администрирование Kafka, как сервисной шины для всего проекта.

Apache Flink в роли агрегатора, на котором построена вся Lambda-архитектура. Складывание данных одновременно в DWH Vertica и уже предагрегированных в PostgreSQL. В дополнение агрегация метрик в InfluxDB.

Визуальный конструктор запросов типа Looker, Mixpanel, Kissmetrics с собственным оптимизатором, позволяющим агрегировать данные сразу из нескольких БД. На фреймворке Symfony 2.

— Система near-realtime рекомендаций коллаборативной фильтрации на основе динамичной и очень большой базы профилей (100млн)

— Интеграция Zabbix

— Интеграция Elasticsearch, проектирование и сопровождение кластера, реализация подсказок (suggestions) в реальном времени. Система аналитики SE-трафика и действий пользователей на сайтах с визуализацией в Kibana.

Итоговый опыт обработки больших потоков трафика на PHP, Node.js, Golang и Java дал понимание плюсов и минусов каждого языка, а также способность подбирать оптимальный инструментарий ещё на этапе проектирования архитектуры, без изобретения "велосипедов".