Опыт работы
World leader in the development of online advertising technical solutions
Senior Infrastructure Engineer / DevOps
Июль 2016 — По настоящее время (3 года и 1 месяц)

2017-2018 (DevOps): Разработка системной архитектуры на базе внедряемых приложений, создание их продуктовых и тестовых решений с использованием Puppet в Amazon AWS и Google GCE. Интеграция и настройка Cassandra CQL, ELK логирования (ElasticLogstashKibana), SUSE OBS (OpenBuildService) с использованием и настройкой облачных и виртуальных инструментов - AWS: EC2, Lambda, CloudFront, ES, IAM, S3, RDS, Docker: Docker Compose и Google GCE. Написание дополнительных инструментов и скриптов, интеграция дополнительной функциональности в код приложений. Создание файловых репозиториев и распределение их в облаках (Content Distribution Network). Настройка доступа с помощью NGINX, uWSGI, u-Auth, LDAP, Apache. Анализ работы и настройка веб приложений.
2016-1017 (Senior Infrastructure Engineer): Разработка автоматизированной системы тестирования множественных продуктов и их конфигураций на базе CI Jenkins с помощью Freestyle Jobs(Jenkins 1.0), а затем Pipelines(Jenkins 2.0). Написание CI тестовых сценариев и универсальных драйверов тестирования на Groovy/Bash/Python языках. Создание полноценных CI процессов тестирования тестируемого кода и продуктовых пакетов от коммитов в репозитории, до продуктовых релизов и библиотек. Тестирование было реализовано с использованием облачных ресурсов Google (GCE), и позволяло динамически использовать их в параллели. Так же система позволяла использовать её для точечной отладки отдельных этапов создания образов виртуальных систем под управлением Docker, сборки и тестирования продуктов. Разрабатывал инструменты для работы девелоперов на виртульных образах на Docker и инструменты для динамического использования Google (GCE) облаков. Так же разработал решения для тестирования перфоманса продуктов на удаленных машинах.
• разработка автоматизированной системы тестирования множественных продуктов и их конфигураций на базе CI интерфейса Jenkins с помощью Freestyle Jobs(Jenkins 1.0), а затем Pipelines(Jenkins 2.0).
• написание CI тестовых сценариев и универсальных драйверов тестирования на Groovy/Bash/Python языках.
• создание полноценных CI процессов тестирования тестируемого кода и продуктовых пакетов от их коммита в репозитории до выпуска продуктовых релизов.
• разработка инструментов для динамического использования облачных ресурсов Google (GCE)
• создание инструментов для работы девелоперов на виртульных образах на Docker

Международная корпорация, которая имеет невероятные возможности повсюду.
Senior Software Engineer
Август 2004 — По настоящее время (15 лет)

2013-2014: работал в команде QA (обеспечение качества программного обеспечения) компиляторного проекта. С 2015 единственный представитель команды QA - руководил тестированием и обеспечивал бесперебойный процесс тестирования. Разрабатывал и внедрял автоматические тестовые системы включавшие все этапы тестирования от интерфейса запуска пользователем до сбора результатов в базе данных и представлению их пользователю в удобных веб форматах. Тестирование запускалось с терминалов пользователей и проводилось на Андроид девайсах с помощью очередей регулиравшися нашей тестовой системой. Так же туда входили сборки Андроидных операционных систем для разных девайсов и архитектур на базе Arm(v7-v8)/Intel(x86-x86_64) платформ, сборки их тулчейнов NDK и компиляторов GCC, LLVM, ICC, XMAIN с правками от нашей команды. Тестирование проводилось на общепринятых мировых тестовых бенчмарках, которые так же собирались для разных платформ своими силами в дополнение которым разрабатывались и создавались свои тест кейсы и юнит тестирования. Задача была выявлять правки в компиляторах не соответствовавших функциональным потребностям и перфомансным характеристикам. Инструменты из этой системы были представлены удобными отдельными компонентами использовавшимися нашими разработчиками для создания своих рабочих пространств и отлаживания своих правок. Участвовал в разработке Андроидных билдовых скриптов при переводе Андроида на поддержку 64 бит. Компания Google просила нас перед каждым их релизом NDK протестировать его в нашей тестовой системе, так как мы делали очень много правок в компиляторах для поддержки и улучшения Интеловских платформ. Основная деятельность и зоны ответственности в проекте:

• руководство и обеспечение регулярного процесса тестирования

• разработка и внедрение автоматических тестовых систем с помощью языков Perl, C, SQL, Bash, KSH

• сборка Андроидных операционных систем для Arm(v7-v8)/Intel(x86-x86_64) платформ в виде образов

• сборки тулчейнов NDK и компиляторов GCC, LLVM, ICC, XMAIN с дополнительными правками

• разработка сборки и интеграции общепринятых мировых Андроидных тестовых бенчмарок

• разработка и создание тест кейсов и юнит тестирования

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

• разработка и создание инструментов доступными в виде отдельными компонентами для использования разработчиками

• разработка Андроидных билдовых скриптов при переводе Андроида на поддержку 64 бит

• помощь компании Google в тестировании NDK релизов

2011-2013: работал в команде VIP (разработка новой архитектуры процессора под руководством Б.А. Бабаяна) проекта. Разрабатывал и внедрял автоматические тестовые системы включавшие все этапы тестирования от интерфейса запуска пользователем до сбора результатов в базе данных и представлению их пользователю в удобных веб форматах, так же система автоматически регулировала коммит проверенных патчей в случае успеха тестирования. Языки написания скриптов были Perl, Bash. Тестовая система использовала Интеловскую промышленную базу LIT тестов для проверки процессорных архитектур. Система автоматически переводила LIT тесты под новую архитектуру и анализировала выдачу ассемблерной трассы при переходе на новый уровень многопоточных вычислений. Участвовал в разработке бинарного симулятора новой архитектуры на C и построению скриптов для его сборки с дополнительными компонентами. Дополнительно проводились администрирование баз данных и рабочих хостов с наладкой рабочих воркспейсов. Основная деятельность и зоны ответственности в проекте:

• разработка и внедрение автоматических тестовых систем с помощью языков Perl, C, SQL, Bash, KSH

• обеспечение автоматической индивидуальной проверки всех изменений в проекте и их регулированием при коммите

• наладка тестовой базы на основе Интеловских промышленных LIT тестов проверки процессорных архитектур

• разработка скриптов для анализа многопоточных результатов ассемблерных трасс от LIT тестов при сравнении разных архитектур

• разработка бинарного симулятора новой архитектуры на C и построение скриптов для его сборки с дополнительными компонентами

• администрирование баз данных и рабочих хостов с наладкой рабочих воркспейсов девелоперов

2007-2011: работал в команде Simics/SoftSDV (разработка симуляторов новых Интеловских платформ для новых связок процессор-чипсеты до их выхода в железе) проекта. Разрабатывал и внедрял автоматические тестовые системы включавшие все этапы тестирования от интерфейса запуска пользователем до сбора результатов в базе данных и представлению их пользователю в удобных веб форматах, так же разрабатывал все тест кейсы покрывавшие все компоненты симулятора и девайсы новых платформ на Perl, Python, C. Создавал вручную образы операционных систем на базе Linux/FreeDOS с нужным количеством компонент достаточных для тестирования и отладки загрузки их в симуляторе Simics. Участвовал в разработке компонет симулятора Simics на языках C, C++, QEMU, XML. Основная деятельность и зоны ответственности в проекте:

• руководство и обеспечение регулярного процесса тестирования

• разработка и внедрение автоматических тестовых систем с помощью языков Perl, Python, C, Bash, KSH, QEMU, C++, Visual SQL

• обеспечение автоматической индивидуальной проверки всех изменений в проекте и их регулированием при коммите

• разработка всех тест кейсов покрывавших все компоненты симулятора и девайсов новых платформ на Perl, Python, C

• создание образов операционных систем Linux/FreeDOS с нужным количеством компонент достаточных для тестирования и отладки загрузки их в симуляторе Simics в виде образов

• разработка компонет симулятора Simics на языках C, C++, QEMU, XML

2004-2007: работал в команде LKP (тестирование новейших патчей в ядро Linux на Интеловских архитектурах) проекта. Разрабатывал и внедрял автоматические тестовые системы включавшие все этапы тестирования от веб интерфейса запуска пользователем до сбора результатов в базе данных и представлению их пользователю в удобных веб форматах с помощью языков Perl, C, PHP, SQL, Bash, KSH, JavaScript. Данная система продалжает действовать в автоматическом режиме и по сей день и в 2015 году принесла интелу более 65 млн $ прибыли. Основная деятельность и зоны ответственности:

• руководство и обеспечение регулярного процесса тестирования

• разработка и внедрение автоматических тестовых систем с помощью языков Perl, C, PHP, SQL, Bash, KSH, JavaScript

• обеспечение автоматического поиска регрессионых изменений в ядре Linux

Software Engineer
Ноябрь 1997 — Август 2004 (6 лет и 10 месяцев)
1997-2004: работал в команде MCST по контракту с SUN над проектом MSTC. Создавал тест кейсы покрывавшие все системные вызовы, команды и библиотеки OS Solaris от 2.5.1 до 2.11 версий на языке C. Администрировал тестовую лабораторию на базе машин Sparc/x86. Глубоко изучил архитектуру операционных систем на базе Unix. Основная деятельность и зоны ответственности в проекте: • cоздание тест кейсов покрывавшие все системные вызовы, команды и библиотеки OS Solaris от 2.5.1 до 2.11 версий на языке C по man pages документации от man.1 до man.9 • администрирование тестовой лаборатории на базе машин Sparc/x86
Высшее образование
Московский институт электроники и математики имени А. Н. Тихонова
Москва
Факультет: Автоматики и вычислительной техники; АВТ
Сентябрь 1994—Март 2000 (5 лет и 6 месяцев)