Ищем разработчика для создания приложений на 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 резюме обязательно