Обо мне

Я люблю писать чистый и поддерживаемый код. Покрытый тестами. Автоматически разворачиваемый в контейнере на проде. Очень жаль, что сроки обычно горят. Так же, немного жаль, что код сейчас пишу редко, в основном управляю командой.

Так же я люблю общаться с коллегами. По работе, вне работы. Стоял у истоков сообщества MoscowPythonBeerMeetup. Выступаю на конференциях.

Профессиональные навыки
PythonDjangoPostgreSQLJavaScriptMySQLLinuxGit
Участие в профессиональных сообществах
Опыт работы
Пик Про
Москва
Senior / Team lead
Сентябрь 2019 — По настоящее время (1 год и 1 месяц)

* Сделал сервис авторизации/аутентификации

  • - aiohttp
  • - вход через смс
  • - система доступа по ролям
  • - jwt
  • - переделка на систему доступа по пермишенам, так как старая перестала справляться
  • - хранение пермишенов в токене в виде битфлагов
  • - raw sql & Tortoise orm

* Переписал сервис управления людьми

  • - с легаси джанго монолита на несколько джанго сервисов

* Сервис уведомлений

  • - go
  • - прием и хранение уведомлений от микросервисов к людям
  • - push сообщения

* SMS сервис

  • - с умным использованием нескольких провайдеров

* Ведение внутренней python-библиотеки

  • - собственный pypi на основе гитлаба

* Сервис истории

  • - node js, typescript
  • - любой микросервис может сохранить дифф своих сущностей

* Сервис хранения файлов

  • - любой микросервис может сохранить файл в S3
  • - сервис отвечает за загрузку файлов и обрезку картинок (pillow)

* Организовал мониторинг

  • - сначала через прометеус и графану
  • - после через Datadog (много интеграций и кастомных метрик)

* Собственная CRM

  • - для управления проектами
  • - для управления лидами

* Организовал общую шину эвентов на RabbitMQ

* Ввел шаблоны для микросервисов на cookiecutter

* Организовал CI/CD

  • - сборка докер образов под стейдж/прод/тесты с умным кэшированием
  • - пайплайн, средний проект проходит весь пайплайн (сборка/тесты/деплой) около 3-5 минут

* Общий сваггер для всех микросервисов

  • - все микросервисы отдавали свой сваггер в интернет
  • - сделал одну страницу (vue js), где программно объединил сваггеры от всех микросервисов
  • - закрыл страницу общей авторизацией (через sms и jwt)

* Пачка микросервисов (каждый выполняет одну-две функции)

* Обучение джунов

  • - один джун в моей команде - полный контроль
  • - как делать Code Review - здесь и далее для всех джунов
  • - как делать отчет о проделанной работе для бизнеса
  • - как разбираться с проблемами/багами на проде
  • - как общаться с продукт овнерами

Все сервисы крутятся в кубернетесе на GCP.

GitPythonDockerDjangoRabbitmqasyncioKubernetesPostgreSQLGolangNginx
Заказная разработка программного обеспечения
python-разработчик
Ноябрь 2016 — Сентябрь 2019 (2 года и 11 месяцев)

1) Проект, которым я горжусь больше всего - worldchess.com

Портал - официальный партнер шахматной федерации. Трансляция игр. Гейминг. Бэкенд на django, вебсокеты на aiohttp. Все крутится в амазоне.

По требованиям федерации отклик на ход меньше секунды.

Максимальное покрытие тестами, всевозможные проверки кода, CI/CD в гитлабе, docker и kubernetes (в прошлом swarm). По нагрузочным тестам приложение держит 2500 rps.

Выступал в роли архитектора/тимлида/ведущего разработчика.

2) Разработка бэкенда системы из трех взаимосвязанных порталов (на разных технологиях - django, aiohttp и tornado). Обмен данными между ними. Высоконагруженные задачи в Celery. Формирование статистики и отчетов на ее основе. Разворачивание на боевых серверах. Массовая рассылка писем (более полутора миллионов в час)

3) Система обработки постов и заведения инцидентов.
Массовый сбор постов из различных соцсетей. Их вывод, фильтрация. Создание инцидентов из постов. Ведение его по рабочему процессу. Публикация ответов в соцсети. Отчеты и статистика.


4) Система сбора заявок граждан из различных источников. Выделение инцидентов из заявок и их рассылка исполнителям. Контроль над исполнением.

Digital‑агентство
python-разработчик
Май 2016 — Октябрь 2016 (6 месяцев)
Heliant
Москва
Web разработчик
Май 2015 — Май 2016 (1 год и 1 месяц)

Разработка проектов.

Backend - python (django), php (bitrix, laravel)

Frontend - javascript (jquery)

Git

Из проектов:

- Сервис для оформления микрокредитов (PHP Bitrix, Jquery). Крупная сеть магазинов через свои кассы выдает привилегированным клиентам микрокредиты. Реализация web-части и взаимодействие с 1C.

- Портал для коллекторов (PHP Bitrix, Jquery). Поиск должников на карте и работа с ними. Учет всех действий с должниками (выезд, звонки, переписка, обещания и напоминания)

- Система статистики и управления Умный район (PHP Laravel, Jquery). Сбор и показ статистики с удаленной БД по устройствам (счетчики, датчики, выключатели, подстанции и т.д.). Где возможно, управление устройствами.

- Агрегатор поиска и покупки билетов на живые квесты (PHP Bitrix, Jquery). Выбор билета и покупка из единого таймлайна, где показаны все ближайшие квесты.

- Портал для разработчиков и организации проектов (Python Django, Jquery, Backbone JS). Постановка задач, учет времени по ним для каждого разработчика. Вывод всех задач по проекту в канбан или диаграмму Ганта. Ведение всего цикла задачи (Постановка, загрузка файлов для понимания, отметки баг и ошибка, оценка времени менеджером и/или исполнителем, смена ответственного).

Специализированный поставщик услуг ИТ-аутсорсинга на базе собственной сети дата-центров в Москве
Старший инженер ЦОД
Декабрь 2013 — Май 2015 (1 год и 6 месяцев)
Поддержка работоспособности ЦОДа 24/7 Обеспечение функционирования мониторинга, холодоснабжения, электропитания. Принятие новых комплексов ЦОД. Участие в проектной деятельности Компании. Руководство и обучение дежурной смены. Контроль за решением клиентских запросов и инцидентов(BMC Remedy). Работа с подрядчиками. Контроль за их деятельностью.
Инженер смены
Август 2013 — Ноябрь 2013 (4 месяца)
Мониторинг работы и устранение неисправностей серверного и сетевого оборудования, Мониторинг основных инженерных систем ЦОД, Решение клиентских запросов и инцидентов(ServiceDesk). Участие в устранении аварий. Взаимодействие с инженерами других служб и подразделений.
ЗАО Датацентр
Химки
Оператор ЦОД
Октябрь 2010 — Октябрь 2012 (2 года и 1 месяц)
Обслуживание, диагностика и починка серверов. Прием и установка серверов и другого оборудования клиентов. Оперативная диагностика и устранение неисправностей в оборудовании клиентов. Диагностика и решение проблем сети.
Услуги хостинга
Менеджер по работе с клиентами.
Май 2010 — Сентябрь 2010 (5 месяцев)
Оператор первой линии техподдержки. Работа с клиентами компании, оперативное решение проблем. Правка конфигурационных файлов. Резервирование и восстановление данных. Помощь клиентам в настройке ПО.
Высшее образование
Московский Авиационный Институт (Национальный исследовательский университет)
Москва
Факультет: Системы управления, информатики и электроэнергетики
Сентябрь 2006—Август 2012 (5 лет и 11 месяцев)