Проводим исследование о роли образования в ИТ. Пройти опрос (займёт 7-10 минут).
Обо мне

Основные навыки:

  • С++11, STL, Boost
  • Python
  • Базовые алгоритмы и структуры данных
  • Опыт работы с системой контроля версий Git
  • IDE - Qt Creator, Visual Studio 2013/2015
  • Опыт сетевого программирования (на C++)
  • Небольшой опыт многопоточного программирования (на C++)
  • Опыт работы с ОС Linux, Debian (bash скрипты)
  • Опыт работы с внешними устройствами через USB/COM порты (RS 232, RS 485)
  • Английский: чтение технической документации

Кроме того:

  • Всегда готов развиваться и расширить границы своих знаний.
  • Веду здоровый и активный образ жизни.
Опыт работы
Май 2017 — по настоящее время (1 год и 10 месяцев)
ООО "НПП "Мера"
Инженер-программист
Мытищи
Обязанности и достижения

• Разработка Plug-In'а (плагин) AsuLuaIndicator (DLL) для ПО "Recorder".
Проект из себя представляет графическое табло, на котором отображаются "панели" с сообщениями об аварии и/или других ошибок наблюдаемой системы. Данный Plug-In взаимодействует со скриптом LUA (на стороне сервера), из которого и выполняется вызов функций Plug-In'а.(Visual Studio 2015, С++11)

• Доработка Plug-In'а (плагин) TenzoRozets (DLL) для ПО 
"Recorder".
Проект из себя представляет огромную систему для наблюдения за показателями Тензодатчиков (которые клеятся на испытуемый участок).
Суть задачи состояла в том, чтобы взаимодействовать с ядром плагина (писалось до меня другими разработчиками (legacy)), отобразить данные в "Интерактивном графике параметров". К графику были особые требования и указания в ТЗ (легенда, выбор зоны, отображение в процентах или в абсолютных единицах).(Builder C++).

• Доработка Plug-In'а (плагин) TenzoRozets (DLL) для ПО 
"Recorder".
ТЗ - Тензо-отчеты (Мастер построения отчета). Реализуется в виде отдельной независимой утилиты. Результатом работы мастера должен являться xls-файл с соответствующими листами отчета (см. фото-вложение в партфолио). (legacy).

• Разработка Инсталлятора для плагинов ТензоРозеток.
Задача: Разработать небольшую программу (с правами администратора), которая копирует все необходимые Плагины и связанные с ними библиотеки и утилиты в нужные директории, для исправной работы системы "ТензоРозетки", под разные архитектуры ОС Windows 7.

• Расширение (версия 2.0) Plug-In'а (плагин) AsuLuaIndicator (DLL) для ПО "Recorder".
Суть расширения и требования:
1. Поддержка нескольких независимых панелей. 
1.1 Каждая панель имеет номер. Номер вводится пользователем в окне настроек панели. По умолчанию 0. 
2. В Функции E_Alarm, PE_Alarm, Delete_Alarm добавляется параметр номера панели для записи и удаления сообщения в требуемой панели. Например, E_Alarm("Авария", 1, 2) - вызов сообщения "Авария" с идентификационным номером 1 в панели с номером 2.
3. Квитирование сообщений.
3.1 В окне настройки панели поместить текстовую метку "Квитирование" и CheckBox для включения/выключения.
3.2 Если квитирование включено, то сообщения должны появляться с кнопкой-крестиком в правом верхнем углу, если выключено, то без.
3.3 При нажатии кнопки-крестика сообщение удаляется. 
3.4 Работа в составе ПО "СИАМ" на клиентских станциях.
Самая важная часть проекта это пункт 3.4.
В проекте были реализованы соответствующие Интерфейсы, классы и функции для того чтобы данный плагин работал по логике клиент-сервер с существующим плагином SYNC.
Т.е. все что происходит на стороне клиента с моим плагином (сообщения в основном), передается плагину SYNC, который через сеть передает в клиентскую часть все необходимое (в формате .xml).
Дальше на клиентской части происходит разбор xml данных, и непосредственно применение к соответствующим формам.
(Visual Studio 2015, С++11, boost::property_tree (для формирования и разбора xml), boost::filesystem, XML, JSON)


• Разработка ПО "Пульт Проверки Датчиков" (фото в портфолио). Проект из себя представляет графическое окно (MFC), Которое работает под руководством ПО "Recorder".
И по окончанию проверки датчика, есть возможность сформировать отчет в .xlsx файл с графиками и таблицами.
(Visual Studio 2015, std::thread С++11,
SimpleXlsxWriter -> https://sourceforge.net/projects/simplexlsx/)
Т.З в Портфолио.

• Доработка Plug-In'а (плагин) plgTenzoViews(DLL) для ПО 
"Recorder" для обеспечения максимальной производительности, с использованием многопоточности.(std::thread, C++11) (legacy).


• Доработка Plug-In'а plgUdpStreamer(DLL) для ПО 
"Recorder".
Существовал UDP стример, который умел отправлять пакеты на один IP адрес, задача состояла в том, чтобы данное ПО одновременно могла отправлять пакеты нескольким приемникам. (legacy).

• Доработка Plug-In'а (плагин) управления режимами сканеров (plgRangeOfPressureScanner)
http://nppmera.ru/mic-170
Добавить в интерфейс раздел "Следящий Датчик".
"Следящий Датчик" - это второй датчик, который выдерживает высокое давление.
Когда тракт первого датчика закрывается при достижении предельного для него значения, в игру вступает "Следящий Датчик", если галочка поставлена оператором.
Оператору предоставляется возможность выбрать любой (в том числе несколько, или все) канал "Следящего Датчика", для открытия тракта первого (более чувствительного) датчика.
(Builder C++). (legacy).

• Прием данных от "ССД LabView по протоколу UDP". Проект из себя представляет асинхронный, многопоточный UDP клиент, который работает под руководством ПО "Recorder", принимает данные от удаленного сервера, и "пишет в каналы ПО "Recorder" ", чтобы можно было проводить протоколы аттестации в ПО "Recorder". 
1. Поддержка нескольких независимых модулей.
У каждого модуля имеется:
1. Кол-во активных каналов,
2. Частота опроса,
3. Частота обновления
4. Уникальный порт
2. Параллельный Парсинг UDP пакетов, с учетом пунктов с 1 по 3, т.е. UDP пакет для каждого модуля формируется исходя из выше указанных значений.
3. Алгоритм распределения(параллельно) полученных данных в соответствующие каналы ПО "Recorder", которые данное ПО конфигурирует динамически, при добавлении/удалении и/или редактировании модуля.
(Visual Studio 2015, std::thread С++11).

• Система разграничения прав доступа для ПО Recorder (Проект "ПО Recorder" состоит из 149 проектов).
Основные тезисы
1. Система нужна для ограничения доступа к различным функциям и настройкам ПО Recorder разными пользователями;
2. Список разграничиваемых функций и настроек должен быть расширяемым, то есть ПО Recorder должно иметь возможность добавлять новые пункты в данный список;
3. Необходима гибкая настройка разграничения прав посредством графического интерфейса, то есть так чтобы можно было указать какому пользователю или роли доступна та или иная функция;
4. ПО Рекордер должно уметь защищать настройки разграничения прав от несанкционированного изменения или удаления;
5. Система должна поддерживать расширение своего функционала через плагины. Например, добавление новых функций в список для разграничения доступа, авторизация пользователей, разграничение доступа и др.

Май 2016 — Апрель 2017 (1 год)
Инженер-программист
Уфа
Обязанности и достижения

• Доработка различных частей существующего кода в соответствии с требованиями.
• Перенос модулей и драйверов из старой версии ядра на более свежий.
• Разработка протокола HSR для коммутатора Поликом.

Декабрь 2014 — Май 2016 (1 год и 6 месяцев)
ООО Строительный производственно-торговый комплекс "Урарту"
Инженер
Уфа
Обязанности и достижения

• Оптимизация обработки ежедневных заявок из табличного документа.
• Автоматизация составления транспортных и товарных накладных из обработанной заявки.
• Администрирование Windows.

Высшее образование
Сентябрь 2005 — Июль 2010
АГИУ-Ереван
Компьютерных систем и информатики
Ереван
Специализация и достижения
Организация и технология защиты информации