Обо мне

Имею опыт разработки в области 2D и 3D графики, игр, систем извлечения фактов и полнотекстового поиска, высоконагруженных серверных решений, систем управления роботами, видео и аудио трансляции между приложениями и браузерами, а также программ управления для контроллеров stm и avr.

Участвовал в проектах:

Игровая платформа "видео слот" компания "НИКИТА".

Авиасимулятор Rise of Flight, компания NeoQB.

Сетевая игра Reflection of The Universe", компания RTU-soft.

Компоненты комплексной обработки текста, компания InfoWatch и ДИТ Москвы.*

Система видеонаблюдения и контроля удалённым оборудованием, компания ОТР.

Сервер трансляции котировок Forex-Club.

Система видеоконференцсвязи, компания MindLabs.

Система управления и автоматизации робота - аниматроника KIKI, весь верхнеуровневый комплект системы, компания AlfaRobotics.

Драйвер RFID контроллера и управляющая система автономного холодильника вендиговых продаж. Индивидуальный заказ.

Общий стаж разработки на С++ и сопуствующих инструментах более 15 лет.

Имею дополнительные навыки разработки прошивок на C|C++ для микроконтроллеров серий AVR, STM, Xtensa.

Увлекаюсь роботехникой и алгоритмами.

Профессиональные навыки
C++C++ stlC++ boostPythonBashCmakeGitLinuxJavaScript
Опыт работы
ООО "ИнфоТек-Сервис"
Санкт-Петербург
Ведущий разработчик
Декабрь 2018 — По настоящее время (1 год и 11 месяцев)

Разработка системы автоматизации учёта потребления воды.

Разработано:

Программы управления устройством учёта потребления воды на базе микроконтроллера ESP32 и AVR. Программы выполняют следующие функции: настройка работы всех параметров и режимов устройства, представляющей собой web сервер; модуль отправки данных по wifi на выделенный сервер обслуживания; модуль обработки и хранения данных и обслуживания компонент устройства; модуль перепрограммирования вспомогательного контроллера Atttiny в составе устройства. Все программы выполнены на C++ с применением сторонних библиотек и компонент для контроллеров Expressif, а также AVR.

Web интерфейс для настройки всех параметров устройства, выполненного на основе фреймворка Vue.js и загруженного в состав программы для микроконтроллера ESP32.

Сервис обслуживания устройств:

- Web интерфейс сервиса обслуживания установленных и запущенных устройств, выполненного на основе фреймворка Vue.js и развернут средствами Nginx. Интерфейс предоставляет картографическую информацию о расположении установленных устройств, подробную информацию о каждом устройстве и его текущее состояние, а так же о группе устройств, информацию о событиях на устройствах. Реализована функция генерации отчётов по задаваемым фильтрам. Реализован поиск групп и отдельных устройств и событий по адресу расположения, имени владельца, идентификатору, так же реализован поиск в пределах заданных временных рамок.

- Комплект серверных модулей обслуживания устройств и обмена с базой данный MongoDB, выполненного на C++ FastCGI компонентом для сервера Nginx. Модули выполняют функции формирования поисковых запросов к БД, формирование отчётов в 3- х требуемых кодировках, получение текущих данных с устройств и запись их в БД, управление доступом и формирование событий на устройствах по результатам анализа принятых данных с устройств и на основе их состояний. Реализована функция обновления настроек временных и количественных параметров работы устройства с целью оптимизации его работы. Взаимодействие модулей реализовано средствами фреймворка Apache Thrift.

Сервис обслуживания управляющих компаний, владельцев устройств учёта потребления:

- Web интерфейс сервиса, предоставляющий функции управления доступом для управляющей компании к сервису обслуживания устройств. Интерфейс выполнен на основе Vue.js и развернут средствами Nginx.

- Сервер обслуживания сервиса УК с доступом к модулю базы данных MongoDB на основе фреймворка Apache Thrift, выполненного на C++ FastCGI компонентом для сервера Nginx.

Программа для устройства автономного программирования устройств в процессе их сборки после изготовления плат на заводе. Программа для устройства автономного программирования выполнена на С++ под Raspbian OS. Программа выполняет функции поиска подключённого устройства, очистки контроллера и записи новой прошивки на новое устройство, понятную светодиодную индикацию выполняемых процессов. В устройстве автономного программирования настроена возможность удалённого обновления прошивки при подключении к интернет через Wifi.

Множество различных вспомогательных, тестирующих и исследовательских прикладных и серверных программных реализаций, в том числе и для отдельных вспомогательных устройств и устройств отладки.

Разработка компонент и скриптов автоматизации, и инсталляции, настройки сервисов, а также web сертификатов на Linux сервера Ubuntu x86 и Raspbian ARM. Подготовка готовых систем на основе Docker.

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

Технологии:

C++ 11, Boost, Docker, Xapian, Js,Vue.js, Websocket, Python, ESP32, Attiny8x, MongoDB, Nginx.

AlfaRobotics
Москва
Ведущий программист С++
Декабрь 2015 — Декабрь 2018 (3 года и 1 месяц)

Разработка распределённой системы управления роботами-аниматрониками.

Разработано: 

Сервер взаимодействия с Windows - TTS приложением в Linux на базе wine и клиентскую часть к нему.  Сервер голосовых ответов и выполнения событий робота на запуск движений и показ медиа-данных, взаимодействующий с системой на роботе и системой оператора. Сервер загрузки конфигурационных файлов Json и медийных файлов. Сервер управления настройками модуля bullet wifi. Сервер Signaling для трансляции аудио и видео между роботом и оператором на базе WebRTC. Система робота - взаимодействующая с описанными серверами, с сервисом Google ASR и с камерами и микрофонами на роботе, отправки команд движений и перемещения драйверам устройств робота. Система оператора - взаимодействующая с описанными серверами, обеспечивающая редактирование и отправку "пресетов" голосовых и медийных событий, событий предустановленных движений манипуляторами; обеспечивающая редактирование и отправку правил и ответов к ним на голосовые команды, и несколько дополнительных типов событий; управление перемещением робота; загрузки медийных файлов и привязки их ко всем реализуемым автономным событиям, а также событиям по требованию оператора.

Система клиента и система оператора совмещены через разработанный протокол с веб консультантом Mibew, для дальнейшего расширения системы управления роботом посредством добавления ботов по операторскому протоколу. Также, в систему Mibew интегрирован обмен по Websocket.

Разработка компонент системы автоматизированной торговли.

Разработано:

Классификатор продовольственных продуктов по их фотографии на основе выделения нескольких групп скалярных величин из фотографии и передачи данных скалярных величин в алгоритм "Наивный Баес". Функции динамического обучения классификатора для расширения количества распознаваемых продовольственных продуктов.

Управляющий сервис для автоматизированного киоска, состав: модуль управления открытием/закрытием дверей и обслуживания датчиков присутствия на основе GPIO, модуль взаимодействия с RFID контроллером Impinj R2000 по USB, модуль определения добавленных и изъятых RFID меток в зоне досягаемости антенн, модуль взаимодействия с управляющим сервером. Несколько вспомогательных утилит для настройки и диагностики устройств GPIO и RFID.

Разработка компонент и скриптов автоматизации, и инсталляции, и настройки сервисов, а также web сертификатов на Linux сервера Ubuntu x86 и Raspbian ARM.

Управление работой дизайнера, верстальщика, инженеров - операторов роботами и тестировщиков, постановка задач, контроль результатов.

Технологии: 

C++ 11, Boost, OpenCV, Thrift,  Xapian, Js, Websocket, Win32 API, Python, WtC++, RFID, GPIO, Google ASR, Bootstrap, zepto.js, Nuance TTS, WebRTC для Js и С++.

Информатизация города
Ведущий программист С++
Март 2015 — Декабрь 2015 (10 месяцев)
Разработка систем и алгоритмов извлечения фактов: Разработка сетевых систем, систем анализа текста и документов, системы распаковки документов, GUI, разработка web на базе WtC++. Разработка linux скриптов автоматизации и тестирования компонентов. Разработано: Модуль антиспама на основе алгоритма "Наивный Баес". Модуль первичного определения тональности текста на основе нескольких оценок: MI, ZIPF, TF-IDF, RF и алгоритме SVM. Вспомогательные компоненты: итератор по словам, итератор по шинглам, модуль взаимодействия с БД Xapian для индексации текстов, а также множество вспомогательных функций. Технологии: С++, Boost, STL, Boost test, Qt 4, Xapian, Thrift, Shark, WtC++, CMake, git Уверенное использование языков: Python, Java, js Навыки работы с базами данных: MongoDB, MySQL, Cassandra. Дополнительные знания: WebGL, CppCMS, CTPP, AS3 (flash). Операционные системы: Linux. Рекомендатель: Судаков Д.В. Руководитель проектов Департамент информационных технологий г. Москвы М. +7(903)235-15-78
Разработка «умных» решений для видео коммуникаций и совместной работы
Старший Программист С++
Ноябрь 2013 — Март 2015 (1 год и 5 месяцев)
Разработка и поддержка существующих программных компонент серверной части продукта ВКС (видео конференц связи). Разработан эмулятор браузера, запускающий аудио и видео потоки для нагрузочного тестирования продукта ВКС. На базе эмулятора разработана библиотека для встраивания в тестовые продукты. Выполнено сопряжение подсистемы WebRTC c Polycom и несколько доработок модулей компонент сервера ВКС. Изготовлены инсталляционные пакеты. OS: Linux (Debian), (Kubuntu). Языки программирования: C++11; тесты и настройка: Java, Python, bash, js. Дополнительные средства разработки: boost (asio, test, spirit, regexp, utils), dpkg, cmake, python. Применяемые библиотеки: WebRtc, libav(поддержка старшей версии продукта), ffmpeg(новая версия продукта). Сборка: GCC 4.7 и выше Система контроля версий: svn, git. Навыки программирования вне профессиональной деятельности: avr-gсс (программирование и схемотехника МК AVR), Android, Python, Java, js (Web GL), as3.
Ведущий международный бренд на рынке финансовых услуг
Старший разработчик.
Апрель 2013 — Ноябрь 2013 (8 месяцев)
Разработка сервера - котировщика. Выполненные работы: Разработана структура проекта, настроена система сборки (cmake), подготовлены компоненты внутреннего тестирования, настроена среда разработки (установлены необходимые библиотеки, компонены и компилятор). В состав системы входят: высоконагруженный сервер обслуживающий клиентов (boost asio), модуль получения котировок, пул потоков для выполнения задач обслуживания клиентов (std::thread), система логирования, модуль логики, система тестов (boost test, python), система сериализации и обработки сигналов, компоненты и утилиты обслуживания и тестирования. OS: Linux (Debian), Unix (FreeBSD). Языки программирования: C++11, Python, bash. Дополнительные средства разработки: boost (asio, test, spirit, regexp, utils), Thrift, cmake, python. Сборка: GCC 4.8 Система контроля версий: svn, git. Один разработчик в подчинении (разработал модуль логики и часть утилит). Навыки программирования вне профессиональной деятельности: Python, Java, js (Web GL), as3.
Крупнейший в России поставщик ИТ-решений и услуг для государства и бизнеса
Разработчик
Апрель 2012 — Апрель 2013 (1 год и 1 месяц)
Разработка компонент сервера хранения и обработки медиа данных. Выполненые работы: Оптимизация и усовершенствование системы сборки, комплекта инсталляции проекта на базе cmake для платформ linux и unix (компиляторы GCC). Оптимизация и исправление внешних используемых библиотек. Замена внешних библиотек решениями на базе boost, и стандартной библиотек и алгоритмов языка C++. Доработка и оптимизация сервера обработки и хранения медиаданных для охранных систем и систем видеонаблюдения. Доработка системы тестирования медиа сервера (Python). Разработка системы распознавания речи на базе библиотеки CMUSphinx. Профессиональные навыки и знания: С++11, C++, С, cmake, boost, stl, make, bash. Уверенное использование языков: Python, Java, js, AS3 (flash) Навыки работы с базами данных: MongoDB, MySQL, Cassandra Дополнительные знания: boost asio, WtCpp, CppCMS, CMUSphinx, API vkontakte. Операционные системы: Linux (Debian), Unix (FreeBSD) . Контроль версий, ревью, учёт работы, документирование: git, crusible, jira, confluence
Программное обеспечение
Программист-разработчик
Февраль 2011 — Март 2012 (1 год и 2 месяца)
Разработка сетевых систем, систем анализа текста и документов, системы распаковки документов, GUI, разработка web. Настройка и разработка linux скриптов. Разработано: Веб сервер технологий НИОКР предоставляющий веб интерфейс для систем анализа текста и документов, систем распаковки документов. Настольное приложение анализа текста и документов, систем распаковки документов, предоставляющее функции просмотра и печати результатов обработки, функции настроек процессов анализа и распаковки. Модуль разбора данных протокола mail agent. Вспомогательные компоненты: итератор по словам, итератор по шинглам. Модуль антиспама на основе алгоритма "Наивный Баес". Модуль первичного определения тональности текста на основе нескольких оценок: MI, ZIPF, TF-IDF, RF и алгоритме SVM. Технологии: С++, Boost, STL, Boost test, Qt 4, Xapian, Shark, WtCpp, CMake, git Уверенное использование языков: AS3 (flash), Java, Навыки работы с базами данных: MongoDB, MySQL. Дополнительные знания: API vkontakte, Python 2.6. Операционные системы: Linux.
Проектная работа
Москва
Разработчик
Январь 2010 — Февраль 2011 (1 год и 2 месяца)
Разработка сетевых систем для энергоснабжения, игровых сетевых систем, клиентской игровой графики, системное и GUI разработка для специализированного процессора. Разработано: Оптимизированный модуль сетевого взаимодействия для игры "Reflection of The Universe". Технологии: С++, MSVC Игровой рендер для сетевого интерактивного презентационного проекта компании "ixibit". Технологии: С++, OpenGL, GLSL, MinGW, Qt 4.5.0, Qt Creator, MSVC Интерактивный виртуальный онлайн путеводитель по выставкам для онлайн системы виртуальных выставок. В составе продукта разработано: 3D онлайн путеводитель по автоматически генерируемой выставке. Онлайн редактор выставочной площади и стендов для автогенератора выставки. Шейдерный онлайн редактор стендов. Сайт: "vi-ex.ru". Технологии: Action Script3, mxml, xml, away3d, flash develop, f4l. GUI, контроль подключения SD Card, контроль подключения USB кабеля, контроль питания, управление touchpanel, контроль состояния специализированной клавиатуры для ritmix RBK-500 (электронная книга) на базе процессора mipsel архитектуры под управлением linux. Технологии: C/C++, GCC for mipsel linux, GCC, SDK ritmix RBK-500, Embedded Qt. Сетевая система управления взаимодействием устройств контроля состояния и аватийного отключения ключей высокого напряжения 110, 220 Квольт на базе одноплатных компьютеров под управлением linux и специализированного оборудования, управление специлизированным оборудованием в режиме реального времени. Технологии: С++, GCC, SQLite (закрытое управление промежуточными данными), Mysql++ (хранение результирующих данных), Xenomai. Многосерверная игровая система для социальной сети `в контакте` под управлением linux (настройка VPS серверов — http, MySQL), часть клиентского приложения (сетевое взаимодействие, 2 экрана игровой логики). Технологии: Java, MySQL, AS3 (flash), API vkontakte.
NeoQB
Москва
Старший программист.
Июнь 2006 — Декабрь 2009 (3 года и 7 месяцев)
Разработка сетевых систем для авиасимулятора «Война в небе 1917» или «Rise of Flight». Разработано сетевых систем: Модуль логических пакетов и сетевых объектов под Windows XP (встроен в проект симулятора) и Linux “Debian”, Серверный модуль для локальной игры под Windows XP (встроен в проект симулятора) и Linux “Debian”, Клиентский модуль для локальной игры под Windows XP (встроен в проект). Система серверов для удалённой многопользовательской сетевой игры под Linux “Debian” и Windows XP, Клиентский модуль для автономных объектов и контроля удалённой многопользовательской сетевой игры под Linux “Debian” и Windows XP, Система ограничения негарантированного трафика в соответствии с дальностью видимости игрового объекта и по настраиваемому ограничению из конфигуратора. Дополнительно: Модуль управления потоками и объмена данными между ними под Linux "Debian" и Windows XP. Модуль контроля времени игровой системы под Linux "Debian" и Windows XP. Модуль динамических библиотек с системой произвольных интерфейсов под Linux “Debian” и Windows XP. Система управления игровыми объектами. Библиотека консоли адаптируемая для любого рендера под Linux “Debian” и Windows XP. Модуль криптования сетевых данных. А также множество сопутствующих компонентов игровой системы. OS: Linux “Debian”, Windows XP Языки программирования: C/C++, Python Дополнительные средства разработки: STL, SDL, RakNet, OpenGL Сборка: GCC, GCC for MinGW, MSVC 7.0 Система контроля версий: VSS, SVN
НИКИТА Группа компаний
Москва
Руководитель проекта
Август 2004 — Август 2006 (2 года и 1 месяц)
Разработка игровых системы «видео слот» для слот автоматов и дополнительных модулей. Планирование и ведение проекта, осуществление технической поддержки заказчика. Постановка задач и контроль за выполнением работ группой разработчиков в количестве 3 человек (2 – программиста, 1 – художник). Разработано базовых систем: Математический вероятностный механизм (3 модификации), Тестовый статистический механизм для быстрого проведения большого числа экспериментов срабатывания игровой системы (3 модификации). Игровая система «видео слот» для слот автоматов, Модульная игровая система «видео слот» для слот автоматов, Система защиты от копирования итогового продукта (только под linux), Интерфейс взаимодействия с внешним специализированным оборудованием (для трёх различных аппаратных систем). На основе базовых систем успешно реализовано 3 проекта. OS: Linux “Debian”, Linux “Fedore Core”, Windows XP Языки программирования: C/C++, Python Дополнительные средства разработки: STL, OpenGL, SDL, Qt, Blender, Gimp Сборка: GCC, GCC for MinGW, MSVC 6.0, MSVC 7.0 Система контроля версий: CVS
Специальный технический центр при Военном университете связи.
Санкт-Петербург
Программист
Сентябрь 2002 — Июнь 2004 (1 год и 10 месяцев)
Разработка программ математического и графического моделирования физических процессов, программ управления экспериментальным оборудованием для систем телефонной и радио связи. OS: Windows 9x, XP, Linux “Fedore Core” Языки программирования: C/C++. Дополнительные средства разработки: STL, OpenGL Сборка: MSVC 6.0, GCC
Высшее образование
Санкт-Петербургское высшее военное инженерное училище связи; ЛВВИУС
Санкт-Петербург
Факультет: 3
Август 1996—Август 2001 (5 лет)
Инженер