Разработчик C\C++, Qt (Senior) — РОЙ-АЭРО, Россия, Ростов-на-Дону
от 200 000 ₽
ОткликнутьсяКомпания: РОЙ-АЭРО
Локация: Россия, Ростов-на-Дону
Формат: Офис
Занятость: Полная занятость
Грейд: Senior
Ищем разработчика для работы с прошивками микроконтроллеров и устройствами под Embedded Linux. Основными задачами будут взаимодействие ПО с аппаратной частью, работа с системными
сервисами, сборка программной платформы и диагностика на реальном оборудовании.
📌 Мы предлагаем: • Оплата труда – 200.000 (на руки) + премия за завершенные задачи
• Оформление по ТК РФ.
• График работы 5\2 с понедельника по пятницу (начало и конец рабочего дня варьируются при необходимости и обсуждается с каждым кандидатом индивидуально).
• Комфортное место работы в центре города в районе площади Химиков (удаленный формат работы в том числе гибридный не возможен).
• Предоставляется парковка и комплексное корпоративное питание.
📌 Обязанности • Разрабатывать и поддерживать прошивки микроконтроллеров на C/C++.
• Разрабатывать системные приложения и фоновые сервисы для Embedded Linux.
• Реализовывать взаимодействие между Linux-устройством, микроконтроллерами и периферией.
• Настраивать кросс-компиляцию и сборку образов системы.
• Адаптировать существующую программную платформу под изменения оборудования.
• Диагностировать проблемы загрузки, обмена данными, памяти и производительности.
• Проверять работу ПО на целевых платах, автоматизировать сборку и испытания.
• Документировать архитектуру, конфигурацию устройства и порядок обновления ПО.
📌 Обязательные требования
▪️ C/C++ и низкоуровневая разработка • Уверенное владение C и практический опыт C++.
• Понимание указателей, времени жизни объектов, размещения данных в памяти, выравнивания и порядка байтов.
• Работа с битовыми полями регистров, буферами и бинарными протоколами.
• Понимание undefined behavior, назначения volatile и его отличия от атомарности и синхронизации.
• Контроль использования стека, динамической памяти и времени выполнения.
▪️ Микроконтроллеры • Практический опыт разработки bare-metal-прошивок или прошивок под RTOS.
• Работа с прерываниями, таймерами, DMA и watchdog.
• Опыт работы с UART, SPI, I²C; умение самостоятельно освоить периферию по документации.
• Использование SDK/HAL производителя и понимание происходящего на уровне регистров.
• Отладка через SWD/JTAG или аналогичный интерфейс.
• Чтение datasheet, reference manual и схем подключения.
▪️ Embedded Linux • Понимание цепочки загрузки: загрузчик → ядро → root filesystem → init → сервисы.
• Практический опыт Buildroot или Yocto/OpenEmbedded: собрать образ для поддерживаемой платы, добавить приложение или пакет, изменить конфигурацию и воспроизвести сборку.
• Кросс-компиляция: toolchain, sysroot, архитектура процессора, зависимости и библиотеки целевой системы.
• Базовая работа с конфигурацией ядра и Device Tree: включить существующий драйвер, настроить периферию поддерживаемой платы, проверить результат.
• Настройка запуска сервисов через systemd или другую init-систему, применяемую на устройстве.
• Диагностика через serial console, SSH, dmesg и системные журналы.
▪️ Системное программирование в Linux • Файловые дескрипторы, процессы, потоки, mutex и межпроцессное взаимодействие.
• РOSIX API, последовательные порты, TCP/UDP-сокеты.
• Неблокирующий ввод-вывод и ожидание событий через poll/epoll.
• Корректная обработка частичного чтения/записи, тайм-аутов и ошибок системных вызовов.
▪️ Инструменты и проверка • Git, CMake и понимание существующих Makefile.
• GDB/gdbserver, strace, анализ дампов и стеков вызовов.
• Использование логического анализатора или осциллографа для диагностики обмена.
• Python и shell для автоматизации сборки, развёртывания и проверок.
• Автоматические тесты логики на компьютере разработчика и интеграционные проверки на устройстве.
• Чтение англоязычной технической документации.
📌 Будет преимуществом • FreeRTOS или Zephyr: приоритеты задач, очереди, синхронизация, взаимодействие с ISR.
• Разработка и сопровождение BSP, перенос на новые платы.
• Доработка U-Boot и написание драйверов ядра Linux.
• CAN, RS-485/Modbus, USB или Ethernet на уровне интеграции оборудования.
• Безопасное обновление прошивок и Linux-образов, откат и восстановление после потери питания.
• Secure boot, проверка подписи обновлений.
• Автоматизированные аппаратные стенды и длительные испытания.
В отклике опишите устройство, с которым работали: микроконтроллер или SoC, используемую ОС, свою зону ответственности и сложную неисправность, которую удалось
диагностировать. Github резюме обязательно.