Профессиональные навыки
PythonPerlGolangPHPRubyCJavaScriptC#JavaDocker
Участие в профессиональных сообществах
Опыт работы
Разработка адаптивных сайтов с индивидуальным дизайном
Principal software engineer
Март 2020 — По настоящее время (7 месяцев)

Разработка ПО для видеонаблюдения, SIP клиентов под iOS/Android, проектирование архитектур ПО.

Linux Operating System for Service Providers
software engineer
Июль 2019 — Март 2020 (9 месяцев)

Разработка CI/CD системы для сборки rpm/deb пакетов, приемочные тесты на их валидность, доступность зависимостей

LinuxCPythonBashGnu make
Ronte.io
Рига
Senior Software Developer
Ноябрь 2017 — Январь 2019 (1 год и 3 месяца)

DevOps:
- в разных проектах Jenkinsfile на groovy для CI/CD
- заворачивание существующих сервисов в docker/docker-compose/Vagrant для разрабочиков (быстрое разворачивание дев окружений на локальной машине)
- minikube/k8s/helm/rancher - переделывание на микросервисы и создание вспомогательных проектов
Разработка:
- Проектирование и реализация на Golang файлового хранилища (аналог AWS S3) для хранения и обработки данных клиентов с распределением по регионам и балансировкой нагрузки (swagger, gherkin acceptance tests).
- Проектирование и реализация на lua/nginx/tarantool единого центра аутентификации для всех сервисов/микросервисов.

DriveCred
Ульяновск
Ведущий программист
Октябрь 2016 — Ноябрь 2017 (1 год и 2 месяца)

Проектирование backend API Python для страхования автомобилей: сбор данных геопозиций (и других метаданных) с автомобилей, отображение на карте, страховые события (ДТП, агрессивное вождение).
Проектирование и реализация SDK на Python, C#. Swagger для описания API и создания документации.
Проектирование мобильных клиентов Android, iOS.
Автоматизация тестирования: CI/CD сборка, тестирование и раскладка приложений, генерация документации из кода.
Автоскейлинг приложений при нагрузке (горизонтальное масштабирование).
DevOps: мониторинг AWS CloudWatch, метрики, падения Sentry/HockeyApp, раскладка сервисов на AWS через CloudFormation - написание сценариев, сопровождение нескольких окружений: dev, stage, prod. Установка, настройка и поддержка продуктов Atlassian (Jira, Confluence, Bitbucket, Bamboo).
стек AWS: EC2, ECS, DynamoDB, CloudFormation, CloudWatch и т.д.

Ведущий инженер-программист
Март 2015 — Август 2016 (1 год и 6 месяцев)

Занимался созданием инструментов для автоматизации разработки новых проектов, поддержания существующих, а также отдельными проектами. Наиболее значимые:
- Python/Bash: разработал RPM/artifacts server поверх AWS S3 (облако Amazon) и клиентские приложения для сборки RPM и загрузки RPM/artifacts на сервер. Добавил кеширование в компьюнити С++ userland s3fs драйвер (https://github.com/khaliullov/s3fs-fuse).
- Python: Участвовал в разработке системы автоматизированного аллоцирования кластера с разными провайдерами (AWS/Vagrant-VirtualBox/физический/custom MachineZone cloud). С помощью манифест-файла можно создать и запровижинить (инициализировать в определённое состояние) или удалить кластер за несколько минут.
- Ruby/Python: PaaS система поверх Google Kubernetes – создал Puppet Environment для автоматического разворачивания программного обеспечения на кластерах. Модули Puppet писал на Ruby. Разрабатывал совместно с комьюнити клиент Ruby для Kubernetes (https://github.com/khaliullov/garethr-kubernetes). Участвовал в разработке Vagrant box с модулями на Ruby для моментальной подготовки рабочего окружения.
- С/C++: Реализовал серверную часть счётчиков времени для вызова call-back URL на основе Timer Wheel алгоритма. Использовали libuv, Nginx HTTP parser. Система одновременно могла обрабатывать до 18 миллионов таймеров с минимальными задержками (latency).
- Python/Erlang: Принимал участие в доработке Continuous Delivery системы (https://www.go.cd/): создали клиентскую консольную программу для управления сервером без использования web-interface. Это позволило существенно упростить и автоматизировать процедуру Unit/Acceptance тестирования приложений.

PythonErlangVagrantRubyPuppetCC++BashDjangoFlask
Мы ждем людей, которые хотят воплощать и развивать масштабные проекты
инженер-программист
Июнь 2011 — Март 2015 (3 года и 10 месяцев)

Разрабатывал и совершенствовал механизмы борьбы со спамом в системах Почты@Mail.Ru, ICQ, Одноклассниках, Мой Мир. Возглавлял команду из 3-х человек, в том числе обучал стажера. Реализованы следующие проекты:
- Perl: Ускорил существующие интерфейсы управления механизмами борьбы со спамом как минимум на два порядка: ранее использовался apache и полнотекстовый поиск в MySQL. Это было заменено на FastCGI, полнотекстовый поиск был реализован через Sphinx Search. Внедрил различные механизмы кэширования (Riak, Tarantool и др.)
- Python/Perl/JS: Участвовал в разработке систем для математического классифицирования и кластеризации (факторный и кластерный анализ, нейронные сети) входящего трафика. Это позволило существенно уменьшить участие человека в классификации и отсеивании спама и являлось частью проекта по полной автоматизации процесса фильтрации спама. Указание пользователем «Не спам» приводит к переобучению системы и уменьшению дальнейших ложных срабатываний (false positives).
- Python: раскручиватель ссылок (webcrawler): демон, анализирующий все URL ссылки, встречающиеся в трафике на предмет фишинга, вирусов и т.п.
- Perl: Совместно с командой ICQ- разработал и внедрил механизм (стоп-слова), который позволил блокировать использование данного сервиса для распространения наркотиков без изменения протокола работы системы. Анализ дальнейшей работы сервиса ICQ показал, что наркодилеры полностью перешли к использованию других систем IM таких как Telegram, Skype и т.д.
- Perl/lua/C++: Реализована highload система/API (external service) для различных проектов Mail.Ru для проверки разных сущностей (URL, email, хэш картинки, хеш вложения и т.д.) на предмет принадлежности к спаму, количество жалоб, хитов и другой метаинформации.
- Java: сделал плагин для Continuous Integration системы TeamCity для загрузки RPM проектов в локальное хранилище после успешного прохождения всех тестов (релиз по кнопке).
- Python/Perl/JS: разработал множество сопутствующих интерфейсов и демонов для работы с антиспам системой. Интерфейсы использовались для коррекции и обучения антиспам системы аналитиками/математиками.

JavaScriptMySQLLinuxGitMongoDBPythonCPerlJavaHadoop
Инженер-программист
Апрель 2009 — Июнь 2011 (2 года и 3 месяца)

Разработка и сопровождение систем управления хостингом и клиентских систем.
- Perl: принимал участие в разработке контрольной панели хостинга, позволяющей изменять настройки Apache, баз данных, устанавливать CMS на хостинг в один клик и т.п.
- Perl: принимал участие в разработке контрольной панели почты для настройки ящиков и фильтров
- Perl/Bash: автоматизация работы хостинга

ООО УлСофт
Ульяновск
Инженер-программист
Январь 2006 — Декабрь 2007 (2 года)

Разрабатывал userland принтер pdf для Windows на C (VS6/VS2003, DDK), installer для Windows.

ЧП Орлов
Ульяновск
ведущий тестер
Сентябрь 2003 — Декабрь 2005 (2 года и 4 месяца)

Тестирование ПО для Windows. Автоматизация тестирования. Возглавлял команду тестирования из 3-х человек.

Высшее образование
Ульяновский государственный университет
Ульяновск
Факультет: Математики и информационных технологий
Сентябрь 2011—Июнь 2014 (2 года и 9 месяцев)

Информационные системы и технологии

Ульяновская государственная сельскохозяйственная академия
Ульяновск
Факультет: Экономический
Январь 2000—Январь 2005 (5 лет)