Навыки: Навык работы с Linux, Проектирование архитектуры, Умение разбираться и работать с чужим кодом, Навык работы с Объектно-ориентированным программированием (ООП) / Object-oriented programming (OOP), Исправление, устранение ошибок, Проведение code review (ревью кода), Разработка программного обеспечения, Навыки программирования, Навык работы с STL, Рефакторинг/оптимизация программного кода, XML, STL, Docker, C++, Qt, Навык работы с Linux, Проектирование архитектуры, Умение разбираться и работать с чужим кодом, Навык работы с Объектно-ориентированным программированием (ООП) / Object-oriented programming (OOP), Исправление, устранение ошибок, Проведение code review (ревью кода), Разработка программного обеспечения, Навыки программирования, Навык работы с STL, Рефакторинг/оптимизация программного кода, XML, STL, Docker, C++, Qt
Опыт работы от 6 лет обязателен
Высшее образование (Программная инженерия, математика, системный анализ) Умение проектировать многопоточные приложения на C++17 с использованием Qt5 (QThread, сигналы/слоты, QMutex)
Умение применять архитектурные и проектные паттерны (MVC, MVVM, Observer, Factory, Singleton, Dependency Injection и др.)
Умение читать и анализировать чужой код на C++/Qt, выявлять архитектурные проблемы и предлагать решения
Умение настраивать и использовать системы контроля версий (Git), включая ветвление, ревью, разрешение конфликтов
Умение проводить профилирование и оптимизацию кода (valgrind, gprof, встроенные средства Qt)
Умение разрабатывать и оформлять архитектурную документацию (UML, ADR, схемы)
Умение обеспечивать безопасность приложения: защита от утечек памяти, переполнений буфера, гонок данных, корректная обработка исключений
Умение работать с сетевыми протоколами (TCP/IP, локальные сокеты, RS-232, RS-422, RS-485) для организации взаимодействия компонентов
Знание Astra Linux SE 1.7.3: архитектура ОС, мандатное управление доступом, дискреционный и мандатный доступ
Место работы: г. Москва, Красноказарменная улица, 14
Описание
Проектирование архитектуры программного обеспечения в соответствии с выбранным стилем (слоистая, MVC/MVVM, клиент-сервер, модульная), определение ключевых компонентов и их взаимодействия. Определение внутренних и внешних интерфейсов (API, протоколы обмена, форматы данных) с учётом ограничений Astra Linux SE. Разработка технической документации на архитектуру: UML-диаграммы (классов, компонентов, последовательности, развёртывания), описание архитектурных решений (ADR), схемы развёртывания. Выбор технологий, библиотек и инструментов в рамках утверждённого стека (C++17, Qt5, CMake, Git). Проведение ревью кода и архитектурных решений, контроль соблюдения принятой архитектуры и стандартов кодирования. Оптимизация производительности и потребления ресурсов приложения (профилирование, многопоточность, работа с памятью).