Embedded Linux Software Engineer (Middle+ / Senior)
Шукаємо кваліфікованого інженера-програміста бортових систем для розробки, оптимізації та підтримки ПЗ безпілотних літальних апаратів. Ви працюватимете над складними завданнями автоматизації польотів, обробки відео, забезпечення надійного зв'язку та інтеграції сенсорів.
Роль передбачає роботу в гібридному форматі з офісом на лівому березі Києва.
Основні завдання та обов'язки
Розробка автопілота: розширення функціоналу ArduPilot (C++), налаштування режимів польоту, алгоритмів керування та перевірок безпеки; збірка прошивок і тестування в SITL/HITL.
Бортове ПЗ під Linux: розробка та супровід програм (C++, Python) на одноплатних комп'ютерах ARM64 (Rockchip RK3588S тощо), оптимізація використання CPU, пам'яті та NPU.
Обробка та передача відео: налаштування конвеєрів відео (GStreamer, FFmpeg, OpenCV; H.264/H.265), апаратних кодеків, зменшення затримок та стримінгу (RTSP/SRT).
Інтеграція датчиків та периферії: збір і обробка даних з GNSS, ІНС, далекомірів та інших сенсорів (I2C, SPI, UART, CAN, DroneCAN, MAVLink).
Канали зв'язку та ретрансляція: інтеграція та налаштування Starlink, LTE, ELRS, wfb-ng, mesh-модемів, WireGuard-тунелів, алгоритмів резервування каналів.
Керування підвісами та трекінг: інтеграція алгоритмів автосупроводу цілей, керування стабілізацією та наведенням камерами.
Образи ПЗ та CI/CD: підготовка та тиражування образів Linux, розгортання оновлень на серійних бортах, ведення обліку версій софту (Git).
Симуляція та автоматизоване тестування: створення тестувальних стендів, симуляторів датчиків і каналів зв'язку, проведення SITL/HITL тестів.
Аналіз логів та розбір інцидентів: діагностика збоїв за логами (syslog, journald, .bin, .tlog), усунення проблем та покращення відмовостійкості систем.
Документування та випробування: ведення технічної документації (MkDocs/Markdown) та участь у польових випробуваннях на полігоні.
Вимоги до кандидата
Досвід розробки на C++/Python під Linux або embedded-систем від 3 років у реальних продакшн-проєктах.
Глибоке розуміння архітектури Linux (systemd, автозапуск, системні журнали, мережеві стек і тунелі).
Знання протоколів інтерфейсів (I2C, SPI, UART, CAN, USB) та MAVLink / DroneCAN.
Розуміння принципів відмовостійкості, резервування та відновлення після збоїв.
Готовність до виїздів на полігон для участі в польових тестуваннях.
Готовність виконати тестове завдання в процесі відбору.
Не обов'язково володіти всіма переліченими навичками: якщо вам близька більшість напрямків, будемо раді розмові. Детальні цілі та напрямки роботи обговоримо під час інтерв'ю.
