C++ / Embedded Linux Разработчик
Ищем C++ разработчика уровня Middle или Senior в команду разработки системного программного обеспечения для ARM-платформ под Embedded Linux.
Основные задачи связаны с разработкой и развитием сервисов и компонентов на C++, многопоточностью, сетевым взаимодействием, IPC, интеграцией с аппаратными интерфейсами и диагностикой ПО непосредственно на целевых устройствах.
Рассматриваем кандидатов с разным уровнем опыта. Конкретный уровень позиции определяется по итогам технического интервью.
Задачи
- Разработка и поддержка системных сервисов и компонентов на C++17/20.
- Работа с многопоточностью, сетевым взаимодействием, IPC и потоками данных.
- Интеграция программного обеспечения с Linux-окружением и аппаратными интерфейсами устройств.
- Диагностика и устранение проблем со стабильностью, производительностью и корректностью работы ПО.
- Отладка программного обеспечения на целевых устройствах.
- Разработка unit-тестов.
- Работа с существующей кодовой базой, участие в code review и развитии архитектуры компонентов.
Требования
- Уверенное практическое знание C++17/20.
- Понимание RAII, lifetime и ownership объектов, smart pointers, move semantics, STL и templates.
- Опыт работы с многопоточностью: std::thread / std::jthread, mutex, condition variable, atomics.
- Понимание типовых проблем многопоточного программирования: race condition, deadlock, корректное завершение потоков и сервисов.
- Уверенная работа в Linux: процессы и потоки, signals, file descriptors, sockets, /proc, /sys, /dev.
- Практический опыт диагностики и отладки сложных проблем с использованием GDB, core dumps, sanitizers, strace, системных логов.
- Опыт работы с CMake, GCC/Clang, Git, unit tests.
- Умение читать и анализировать существующий код, разбираться в архитектуре системы и аккуратно вносить изменения.
Будет преимуществом
- Опыт разработки под ARM / Embedded Linux.
- Опыт работы с TCP/UDP, sockets и сетевыми сервисами.
- Опыт работы с IPC: D-Bus, shared memory, очереди сообщений.
- Cross-compilation и разработка ПО для целевых устройств.
- Buildroot или Yocto.
- CI/CD, Python для утилит и автоматизации.
- Опыт работы с GStreamer, FFmpeg, V4L2, DRM/KMS, ZeroMQ, OpenCV.
- Опыт интеграции с сенсорами, видеооборудованием или другими аппаратными устройствами.
Опыт со всеми перечисленными технологиями не является обязательным. Для позиции важны сильная база в C++ и Linux, практический опыт решения системных задач и способность самостоятельно разбираться в существующем программном обеспечении.
Позиция не предполагает разработку Linux kernel drivers или BSP с нуля.
Условия
- Оформление по ТК РФ.
- Работа в оборудованном офисе.
- Гибкое начало рабочего дня.
- График работы 5/2.
- Полный рабочий день.
- Заработная плата — от 290 000 рублей в месяц, итоговый уровень обсуждается по результатам собеседования.