Дмитрий Г. , Senior, C++ разработчик

Male avatar
Дмитрий Г.
2 530 ₽/час 404 800 ₽/мес. без НДС
    C++ разработчик
  • Senior
Опыт работы:

25+ лет

Языки:

Русский — C2

ПисьменныйРазговорный

Английский — B2

ПисьменныйРазговорный

Немецкий — B1

ПисьменныйРазговорный

О специалисте

Навыки
ООП
Linux
C/C++
embedded
MS Visual C++
OpenCV
QT
EtherCAT
Linux RT
MotionControl
Boost
STL
Git
Multithread Programming
Protobuf
gRPC+protobuf
0mq+protobuf
Delphi
TCP/IP
RS232/485
Unit test
Qt5
QML
WebEngine
Opal+Ptlib
Windows Api
WebSocket
libpcap
DPDK
MsVS
DEV-тесты
C++17
Posix signals
Fork
pipe
execve
system
setcap
passwd
boost::asio
кросплатформенная сборка
MFC
qtcreator
Multithreaded Motion Control
LibUSB
G-code
Assembler
Applications:
Docker
Technology:
JavaScript
Формат работы
Удалённо
Описание о специалисте

Программист C/C++ под OS Windows и Linux x86, LinuxRT embedded (Stack: backend for Windows/Linux, Cross-platform compilation/debugging, конечные автоматы в т.ч. с событийным механизмом управления, Multithreading, STL, BOOST, DLLs, USB, TCP/IP client-server communication, RS232/485, unit test, коммуникационные протоколы…) 

Software engineer Delphi (интерфейсы человек-машина, TCP/IP, RS232/485,

высоковольтное оборудование, управление машинами и механизмами, databases, ADC/DAC/IO платы сбора данных…)

Техническая поддержка клиентов, менеджер по продуктам. менеджер по рекламациям

Программист QT C++ (финансовый API, торговые роботы в MT4/MT5, Nasdaq сбор данных и обработка)


Степень Магистра - защищена работа по теме "Разработка методов распознавания изображений в установках микромонтажа". Разработан собственный уникальный метод быстрой идентификации объектов на изображении по принципу "геометрических инвариантов". ПО написано в IDE QTCreator с использованием OpenCV, на контроллере Raspberry PI3B+. В качестве базы для аппаратной части использован 3Д принтер Anet A2 и USB микроскоп. Управление моторами реализовано командами G-Code. В качестве образцов взяты реальные кремниевые пластины и сепарированные кристаллы.


Сертификаты:

QT5 паттерны проектирования (Udemy)

QT5 курс программирования (Udemy)

GIT система контроля версий (Udemy)

Python3 (Udemy)

Scrum 2020-01-01 (Berlin)

ELMO разработка программ управления 2017-01-01 (Berlin)

Курсы предпринимателей 2006-01-01

Участник конференции «Актуальные проблемы радио инженерии и коммуникаций» 2006-01-01 (Севастополь)

Windows and Unix системный администратор 2005-01-01

Безопасность высоковольтного оборудования, уровень 4 (выше 1000В) 2004-01-01

Примеры работ

NDA
Описание задачи/проекта

Интерфейс оператора колл-центра. Программный модуль для Windows 10/11, предоставляющий оператору доступ к системе распределения входящих/исходящих вызовов. Написан на QT5 с интеграцией библиотек для работы с voip телефонией, потоковым звуком.

Позиция на проекте
Инженер-программист
Размер команды
1 тимлид, 12 разработчиков, 2 тестировщика
Ответственность
  1. Доработка интерфейса оператора колл-центра по спецификации от аналитиков исходя из требований конечного заказчика, с тесным взаимодействием с командами поддержки БД и бэкенд.
  2. Исправление багов.
  3. Разработка интерактивных пользовательских интерфейсов на Qt Quick (QML/JavaScript).
  4. Создание кастомных модулей с логикой управления на JavaScript и ресурсоемкими операциями на C++.
  5. Поддержка и доработка легаси-кода интерфейсного модуля распределенной высоконагруженной системы распределения звонков и передачи потокового аудио.
  6. Поддержка и развитие скриптов для модуля сборки Innodb.
  7. Разработка плагинов для расширения функциональности программы, например, в области безопасности (авторизация - с keycloak/kerberos), логирования (отправка логов на удаленный https сервер - с libcurl), надежности работы с аудиоустройствами (тестирование устройств по требованию оператора и периодическое во время работы программы и осуществления звонков - с WinAPI) и др.
  8. Конфигурирование плагинов через реестр Windows и ini файлы.
Технологии и инструменты
JavaScript, QML, Qt5, Windows Api, WebSocket, WebEngine, Opal+Ptlib
Период работы/продолжительность
Октябрь 2025 г. - Май 2026 г.
NDA
Описание задачи/проекта

Сервер проекта или АРМ операторов подписываются на сканер, получая актуальные данные об устройствах в сети (контроллерах), в т.ч. не распределенных (без IP адреса, без загруженного ПО по проекту). Возможность передачи устройствам конфигурации через сканер, валидация конфигурации.

Позиция на проекте
Старший инженер-программист отдела системного ПО
Размер команды
1 тимлид, 4 разработчика, 2 тестировщика
Ответственность
  1. Разработка сканера для Astra Linux с двумя интерфейсами (gRPC и libpcap).
  2. Создание трех модулей для контроллера.
  3. Поддержка работы модулей 24/7.
  4. Создание протокола обмена для сканирования и передачи информации контроллера.
  5. Обеспечение параллельной обработки нескольких интерфейсов для ускорения сканирования.
  6. Разработка архитектуры с разделением клиент-сервер для коммуникации.
  7. Реализация фильтрации пакетов по ethernet type.
  8. Создание docker-контейнеров для тестирования сканера в окружении контроллеров.
  9. Изучение API libpcap и DPDK для сетевого обмена.
  10. Разработка концепции создания нескольких очередей для асинхронной работы модулей.
  11. Минимальный рефакторинг классов и внедрение наследования для унификации коммуникации через libpcap или DPDK.
  12. Согласование всех аспектов протоколов с командами backend.
Технологии и инструменты
Docker, embedded, Git, DPDK, gRPC+protobuf, libpcap, MsVS, DEV-тесты, multithreaded
Период работы/продолжительность
Август 2024 г. - Сентябрь 2025 г.
NDA
Описание задачи/проекта

Модуль (Загрузчик) работает на контроллере 24/7, получая от сервера команды на запуск, остановку и передачу POSIX сигналов модулям. Он мониторит модули и перезапускает их при падении, если это предусмотрено параметрами. Авторизуется на сервере через HTTPS и анализирует ответы. Запускает утилиты для смены паролей пользователей. Общение с сервером происходит через библиотеку 0MQ с использованием формата данных protobuf.

Позиция на проекте
Старший инженер-программист отдела системного ПО
Размер команды
1 тимлид, 4 разработчика, 2 тестировщика
Ответственность
  1. Изучение API библиотеки 0MQ.
  2. Разработка и реализация протокола обмена на protobuf с сервером.
  3. Реализация web-запросов на удаленный http(s) сервер через сокеты.
  4. Создание архитектуры для отслеживания всех запускаемых через fork модулей.
  5. Асинхронное управление жизненным циклом модулей в соответствии с индивидуальными настройками.
  6. Поиск, проверка и внедрение способа смены пароля пользователя.
  7. Согласование всех аспектов протоколов с причастными командами backend.
Технологии и инструменты
C++17, Fork, Git, MsVS, DEV-тесты, Posix signals, pipe, execve, system, setcap, passwd
Период работы/продолжительность
Январь 2024 г. - Август 2024 г.
NDA
Описание задачи/проекта

Система обеспечивает связность распределённого управления, работая на всех узлах сети независимо от их платформы. Она предоставляет клиентам гибкий интерфейс для подписки и публикации данных через gRPC или проприетарный TCP-протокол. Каждый узел динамически находит источники запрашиваемых данных и обеспечивает их доставку подписчикам, поддерживая локальные и удалённые объекты. Взаимодействие между узлами осуществляется по закрытому протоколу, реализуя модель "многие-ко-многим".

Позиция на проекте
Старший инженер-программист отдела системного ПО
Размер команды
1 тимлид, 4 разработчика, 2 тестировщика
Ответственность
  1. Разработка и внедрение масштабируемой архитектуры данных с поддержкой подписки «многие-ко-многим».
  2. Создание проприетарных протоколов обмена для передачи трехуровневых структур данных без необходимости полной перепаковки при изменениях.
  3. Оптимизация упаковки данных с учетом необязательных полей и вариативности структур.
  4. Сравнительный анализ эффективности протокола (превзошел protobuf по производительности).
  5. Разработка асинхронного механизма коммуникации между клиентами и управляющей системой (МС) без блокировок памяти.
  6. Реализация dual-протокола (TCP + gRPC) для одновременной работы клиентов разного типа.
  7. Создание системы динамического поиска, подписки и обновления данных в распределённой сети.
  8. Разработка потокобезопасной структуры SafetyTreeMap с поддержкой visitor-шаблона.
  9. Интеграция автоматической генерации C++-кода из protobuf-схем.
  10. Тестирование многопользовательского асинхронного gRPC (клиенты + эмуляторы нагрузки).
  11. Согласование протоколов с backend-командами.
Технологии и инструменты
C++17, Git, gRPC+protobuf, MsVS, DEV-тесты, boost::asio, кросплатформенная сборка
Период работы/продолжительность
Ноябрь 2022 г. - Декабрь 2023 г.
NDA
Описание задачи/проекта

Система платежей картами МИР.

Позиция на проекте
Старший инженер-программист
Размер команды
3 разработчика, 1 тестировщик
Ответственность
  1. Рефакторинг кода.
  2. Разработка нового функционала.
  3. Исправление багов в системе платежей, Linux.
Технологии и инструменты
Oracle, С++17, Многопоточность и синхронизация
Период работы/продолжительность
Июнь 2022 г. - Октябрь 2022 г.

Образование

Магистр
Название учебного заведения/курса
Московский финансово-промышленный университет "Синергия"
Специальность
Информационные технологии, Искусственный интеллект
Не нашли, кого искали?

Оставьте заявку и, наша команда в кратчайшие сроки подберёт необходимого специалиста за вас!

Помните, что заключение договора и оплата услуг происходит после того, как вы выбрали специалиста

Request Poster