Разработчик C\C++, Qt (Middle)
Коротко
Develops C++/Qt applications for device control: builds interfaces, data exchange, diagnostics, multithreading, and automated tests. · Needs: C++17+ (RAII, move semantics, STL); Qt (QObject, signals/slots, model/view, QThread); Qt Network or Qt SerialPort; office work in center, no remote.
Описание от работодателя
Ищем разработчика для создания приложений на C++ и Qt: интерфейсов управления устройствами, настройки оборудования, отображения данных и диагностики.
📌 Мы предлагаем: Оплата труда – 150.000 (на руки) + премия за завершенные задачи
Оформление по ТК РФ
График работы 5\2 с понедельника по пятницу (начало и конец рабочего дня варьируются при необходимости и обсуждается с каждым кандидатом индивидуально)
Комфортное место работы в центре города в районе площади Химиков (удаленный формат работы в том числе гибридный не возможен)
Предоставляется парковка и комплексное корпоративное питание
📌 Обязанности:
Разрабатывать и поддерживать приложения на C++/Qt.
Создавать интерфейсы настройки, управления и отображения состояния устройств.
Реализовывать обмен данными с оборудованием и сервисами.
Обрабатывать входящие данные без блокировки пользовательского интерфейса.
Разделять интерфейс, прикладную логику и транспортный уровень.
Писать автоматические тесты, находить и исправлять ошибки. Работать через GitHub, участвовать в code review и поддерживать документацию.
📌 Обязательные требования:
▪️ C++
Практическое владение C++17 или новее: RAII, время жизни объектов, ссылки, указатели, move-семантика.
Использование STL: контейнеры, алгоритмы, умные указатели.
Понимание причин утечек памяти, висячих ссылок и ошибок многопоточного доступа.
▪️Qt
Опыт разработки законченного приложения на Qt.
Уверенное знание QObject, signals/slots, Q_PROPERTY, механизма событий и таймеров.
Понимание владения объектами через parent–child и корректного удаления объектов.
Практический опыт Qt Widgets либо Qt Quick/QML.
Работа с model/view: модели данных, представления, обновление данных без полной пересборки интерфейса.
Понимание QThread, принадлежности объектов потокам, queued connections и ограничений работы с GUI из фонового потока.
▪️Обмен данными
Опыт использования Qt Network или Qt SerialPort для связи с внешними системами.
Умение обрабатывать частичное получение сообщения, тайм-ауты, потерю соединения и некорректные данные.
Работа с JSON и бинарными форматами; понимание разницы между потоком байтов и отдельным сообщением протокола.
▪️ Инструменты и качество
CMake: сборка приложения, подключение модулей Qt и сторонних библиотек.
Linux на уровне среды разработки: терминал, зависимости, запуск и диагностика приложения.
Git: ветки, pull request, разрешение конфликтов.
Отладка в Qt Creator/GDB или аналогичных инструментах.
Опыт автоматических тестов; готовность использовать Qt Test, включая проверку сигналов через QSignalSpy.
Чтение технической документации на английском языке.
📌 Будет преимуществом:
Знание обоих подходов: Qt Widgets и Qt Quick/QML.
Интеграция C++ и QML, разработка собственных моделей данных.
Развёртывание Qt-приложений на Linux и Windows.
Python для автоматизации и эмуляции оборудования.
Настройка CI и использование sanitizers.
Опыт приложений для приборов, измерительных систем или промышленного оборудования.
В отклике расскажите о приложении на Qt, которое разрабатывали: за какие части отвечали, как организовали обмен данными и как предотвращали зависания интерфейса.
Публичный код необязателен. Github резюме обязательно