TL;DR
Мне 33 года.
Backend-разработчик и Team Lead. Опыт профессиональной разработки 13 лет.
В основном пишу код на Rust, но так же хорошо знаю Go и Ruby.
DevOps инженер. Могу поднять и настроить Kubernetes кластер с нуля.
Выступаю на митапах / конференциях4
Open Source активист и контрибьютор227
Core-контрибьютор: dotenv-linterrust, datanymizerrust, goreleasergo, reviewdoggo
Работаю удалённо более 8 лет.
Уровень английского — B2. Изучаю в Skyeng.
Содержание:
Профессиональный опыт
Февраль 2016 — По настоящее время, Evrone
Backend разработчик (Rust, Go, Ruby), Team Lead, DevOps-инженер
Список проектов, в которых я принимал участие:
BS Limousine — аналог Uber, только с лимузинами.
Мое участие в проекте:
- Управление командой, планирование спринтов, постановка задач, контроль качества исполнения;
- Реализация проекта на фреймворке Ruby on Rails за короткий срок.
Cofoundit — онлайн-сервис поиска работы в стартапах под инициативой ФРИИ.
Мое участие в проекте:
- Разработка проекта с нуля, от проектирования и написание ТЗ до полной сдачи проекта в эксплуатацию;
- Планирование спринтов, декомпозиция задач, контроль качества работы, управление командой.
Invendor — агрегатор сервисных центров.
Мое участие в проекте:
- Разработка проекта с нуля, от проектирования и написание ТЗ до полной сдачи проекта в эксплуатацию;
- Управление командой, планирование спринтов, постановка задач, контроль качества исполнения;
- Реализация проекта на фреймворке Ruby on Rails c использованием DDD;
- Написание сложных SQL-запросов и материализованных представлений с использованием PostGIS;
- Настройка CI/CD.
Hunamiq — децентрализованный банк нового поколения на базе блокчейна Ethereum.
Мое участие в проекте:
- Разботка микросервисов на Go для работы с блокчейном Ethereum;
- Реализация сервиса по распознаванию лиц на Go;
- Настройка и поддержка Kubernetes кластеров на Google Cloud Platform;
- Настройка CI/CD, написание helm-чартов для развертывания сервисов в Kubernetes кластеры.
Mystery Mentor — проект для автоматизации процесса ментроства внутри компании.
Мое участие в проекте:
- Разработка проекта с нуля, от проектирования и написание ТЗ до полной сдачи проекта в эксплуатацию;
- Планирование спринтов, декомпозиция задач, контроль качества работы, управление командой;
- Реализация CLI приложения на Go;
- Реализация микросервиса подстветки синтаксиса на Node.js и фреймворке Express;
Внутренняя ERP система — внутренний проект компании для автоматизации рабочих процессов.
Мое участие в проекте:
- Управление командой, планирование спринтов, постановка задач, контроль качества исполнения;
- Менторство новых разработчиков в рамках этого проекта;
- Разделение проекта на микросервисы;
- Разработка gem-библиотек на Ruby;
- Разработка сервиса уведомлений (slack, mail) на Go с использованием RabbitMQ и Protocol Buffers;
- Реализация сервис произодственного календаря на Rust;
- Настройка CI/CD, Kubernetes кластера, написание helm-чартов.
OpenUrban - сервис отслеживания движения транспорта в Санкт-Петербурге, аналог Яндекс.Транспорт.
Мое участие в проекте:
- Настройка и развертывание Kubernetes кластера с нуля на bare metal;
- Настройка CI/CD, миграция на Docker-образы, написание helm-чартов;
- Реализация сервиса для предсказания движения транспорта на Rust.
Cryptopay — сервис по продаже/покупке криптовалюты.
Мое участие в проекте:
- Управление командой, планирование спринтов, постановка задач, контроль качества исполнения;
- Разботка микросервисов на Rust и Go;
- Настройка CI/CD, Kubernetes кластера, написание helm-чартов.
Помимо разработки, я так же принимал участие в:
- Развитие OSS направления — популизация open source в компании, помощь коллегам с их контрибьютами;
- Развитие Rust направления — популизация языка, менторство коллег;
- Написание статей для open source проектов и их продвижение;
- Проведение собеседований на позиции Rust, Go и Ruby разработчиков.
Август 2015 — Февраль 2016, MDK
Team Lead (Ruby, Rails)
Основные обязаности:
- Построенние рабочего процесса с нуля;
- Выбор инструментов для командой разработки;
- Удаленное управление командой разработчиков;
- Планирование спринтов, постановка задач, контроль качества исполнения;
- Установка и настройка серверов.
Основной проект — сервис ставок на свои игры в Counter-Strike: Global Offensive и Dota.
Мое участие в проекте:
- Разработка проекта с нуля, от проектирования и написание ТЗ до полной сдачи проекта в эксплуатацию;
- Внутри проекта мной было реализовано: Интеграция со Steam (аутентификация, прием/вывод платежей), разработка своей внутренней валюты, внутренний API для работы с сервисом, мониторинг результатов игры, написание библиотек для работы с API сторонних сервисов.
Июль 2014 — Август 2015, Лаборатория Электронных Учебников
Team Lead (Ruby, Rails)
«Электронная Образовательная Среда» — это единое образовательное поле, в котором размещены различные идеи:
- планшет учащегося синхронизирован с интерактивной доской и может выступать в качестве пульта для голосования, учебника, интерактивного пособия или справочника
- планшет учителя — это инструмент создания урока, его проведения, заполнения сведений об образовательных достижениях учащихся
- интерактивная доска — она позволяет отображать не только учебный материал, результаты экспресс-опросов или содержание планшетов учащихся, но и дает возможность активно моделировать процессы окружающего мира, характерные для предметного направления
- электронный дневник — с его помощью учащиеся могут просматривать домашние задания и расписание занятий в режиме онлайн, а их родители всегда в курсе успеваемости детей
- информационная система «Посещение и питание» — в школах, оснащенных данной системой, ученики проходят в здание по электронной карте — своеобразный эквивалент визитки школьника и удобный платёжный инструмент.
Проект разделен на несколько подпроектов:
1/ Система управления обучением — сердце проекта «Электронная Образовательная Среда», содержит в себе логику по созданию расписания, работе с пользователями, проведению уроков и многое другое.
Мое участие в проекте:
- Планирование разработки, декомпозиция задач, контроль качества работы;
- Разработка логики и API, покрытие кода тестами (acceptance, unit, views), написание документации;
- Оптимизация API, запросов к БД, систем авторизации и кэширования, тестов (более 9000), перенос логики из моделей в сервисы и фоновые задачи, перенос логики из представлений в декораторы;
- Настройка развертывания и непрерывная интеграция приложения через TeamCity.
2/ Система управления контентом — проект по управлению электронными учебниками и созданию пользовательского контента с помощью редактора.
Мое участие в проекте:
- Разработка проекта с нуля, проектирование, декомпозиция задач, контроль качества работы, управление командой;
- Создание нескольких микросервисов, настройка их взаимодействия между собой через API;
- Разработка библиотеки для хранения пользовательских материалов в формате XML и дальнейшей их компиляции в бинарный формат;
- Написание библиотек для работы с API сторонних сервисов. Полное тестирование проекта и взаимодействия между микросервисами;
- Реализация фоновой обработки материалов содержащих видео. Разработка менеджера очереди для компиляции материалов;
- Настройка развертывания и непрерывная интеграция приложения через TeamCity.
Ноябрь 2013 — Июль 2014, Вольтекс Технолоджи
Team Lead (Ruby, Rails)
«Doka.Box» — программно-аппаратный комплекс, который позволяет за считанные минуты организовать работу малого офиса, включая беспроводную локальную сеть, доступ в интернет, телефон и программное обеспечение для коллективной работы сотрудников.
Мое участие в проекте:
- Управление командой разработчиков (Backend/Frontend): постановка задач, выставления сроков выполнения, контроль качества работы, обучение команды, написание технической документации;
- Помимо управления командой, основную часть времени занимался разработкой веб-интерфейса «Doka.Box»: реализация API для работы с аппаратной частью, доработка сторонних библиотек под нужды проекта, полное тестирование проекта с помощью RSpec и Capybara;
- Написание внутренних библиотек для работы с железом, с использованием протокола AMQP для передачи сообщений.
Июль 2013 — Октябрь 2013, BlueFox
Ведущий backend-разработчик (Ruby, Rails)
«Mercury» — внутренний проект для французской компании BlueFox. Основные функции проекта — CRM, Billing, Stock Management. Проект построен на основе Active Admin.
Мое участие в проекте:
- Интеграция Rails Money, разработка дополнительных решений, для работы с разными валютами, автоматическое обновление курса валют через Eu Central Bank;
- Работа с фоновыми задачами с использованием Sidekiq, контроль их выполнения;
- Генерация и парсинг Excel файлов;
- Разработка решений для интеграции проекта с сервисом Amazon S3 и Heroku.
Январь 2013 — Июль 2013, Ivory Interactive
Backend-разработчик (Ruby, Rails)
«BusStop» — проект по разработке системы “Digital Signage” для информационных терминалов на остановках общественного транспорта города Москвы. Проект состоит из двух частей — клиентская часть (терминалы) и серверная (API, интерфейс управления для клиентов, интерфейс администратора).
Мое участие в проекте:
- Создание интерфейса управления терминалами;
- Разработка решений для сбора и отображения статистики, генерация тепловой карты кликов по терминалам;
- Написание парсера новостных лент и генератора PDF-отчетов.
Октябрь 2012 — Январь 2013, FeedMan
Backend-разработчик (Ruby, Rails)
«FeedMan» - сервис отложенных публикаций в социальные сети.
Мое участие в проекте:
- Разработка биллинг системы, подключение оплаты через Robokassa.
- Написание RSS и FeedBurner парсеров для автоматического сбора пользовательких статей и публикации их в социальные сети;
- Настройка автоматического развертывания и резервного копирования проекта.
Июль 2012 — Октябрь 2012, Cafe Digital
Backend-разработчик (Ruby, Rails)
«Диета Инны Воловичевой» — проект по распространению диеты, посредством смс-подписок. Одновременно с этим проектом разрабатывалась платформа, для работы с контент-провайдерами. Проект включает в себя API, систему биллинга, сервис статистики, личный кабинет. Работа с подписками осуществлялась через API сторонних сервисов — Platinot, A1 Sms Market, МосКомСвязь, 7hlp.
Мое участие в проекте:
- Написание библиотек для работы с API сторонних сервисов, тестирование кода;
- Разработка сервиса статистики (Backend/Frontend) и системы биллинга.
Ноябрь 2011 — Июль 2012, Lebrand Creative Russia
Веб-разработчик (PHP/1С-Битрикс, JavaScript)
Разработка проектов:
- интернет-магазин мебели «Столплит»;
- портал о топливных картах «Топкарта»;
- несколько проектов для банка «2TBank»;
- агрегатор CPA-сетей и рекламная платформа «ARBOOST».
Июль 2010 — Ноябрь 2011, 4TE
Веб-разработчик (PHP, JavaScript)
Разработка и поддержка внутренних проектов компании:
- мерчендайзинг товаров для компании LG;
- система «Тайный покупатель» для компаний Роснефть и Газпром нефть.
Ноябрь 2009 — Июль 2010, Masterhost
Системный администратор
Установка, настройка, админинстрирование и мониторинг:
- серверов на базе Linux/FreeBSD;
- почтовых кластеров(Exim, Qmail).
Написание shell-скриптов для автоматизации рабочих процессов.
Сентябрь 2008 — Октябрь 2009, ТТК
Системный администратор
Настройка и администрирование:
- серверов на базе ОС Linux/Windows;
- офисной локальной сети;
- почтовых серверов;
- сайтов и хостингов.
Профессиональные навыки
Backend
Хорошее знание Rust, Go, Ruby (Rails, Hanami, Sinatra).
Есть опыт написания как микросервисов, так и полноценных CLI приложений.
Опыт разработки на Node.js с использованием фреймворка Express.
Базы данных
С 2012 года, в качестве СУБД использую PostgreSQL, до этого работал с MySQL. Из NoSQL решений предпочитаю использовать Redis, есть опыта работы с MongoDB и Memcached.
DevOps
Docker и Docker Compose использую на всех проектах.
Большой опыт настройки и развертывания с нуля Kubernetes кластеров, как на Google Cloud Platform, так и на bare metal.
В качестве CI/CD предпочитаю использовать GitHub Actions, но есть опыт работы и с другими сервисами.
Работал с Ansible, Chef, Capistrano, Mina.
Так же есть большой опыт работы с ОС семейства Unix: Gentoo, Debian, RHEL, Ubuntu, когда-то в прошлом и FreeBSD.
Open Source активность
Core-контрибьютор:
- В одном проекте на Rust: datanymizer;
- И в двух проектах на Go: goreleaser и reviewdog.
Мои коммиты можно найти в таких проектах: rails, hanami, micro, intellij-rust, etc227
Мои OSS проекты:
- dotenv-linter — линтер для
.env
файлов, написанный на Rust. В рамках этого проекта я так же выступаю в роли ментора и помогаю всем желающим начать контрибьютить в open source проекты на Rust; - gastly — библиотека на Ruby для создания скриншотов сайтов. Под капотом используется Phantom.js и MiniMagick;
- capistrano-hanami — библиотека на Ruby для развертывания проекта на Hanami через Capistrano;
- mina-hanami — библиотека на Ruby для развертывания проекта на Hanami через Mina;
- brevity — сокращалка ссылок на Go с готовым helm-чартов для развертывания в Kubernetes кластере;
- queue_manager — менеджер очереди уникальных задач на Ruby. Под капотом Redis Sorted Sets. Поддерживает ActiveJob и Global ID;
- pivotal_tracker_telegram_bot — телеграм бот на Ruby для получения уведомлений из Pivotal Tracker. Под капотом Sinatra и Redis PubSub.
В рамках проекта reviewdog создал несколько GitHub Actions для запуска популярных линтеров:
Образование
2008 - 2012, МГУ им. Н.П. Огарёва, АСОиУ