> Djinni
Embedded Engineer
c++linuxembedded linuxmultithreadingipcoopsoliddesign patternscmakegdbunit testing
googletestrosros 2gstreamerffmpegcomputer visionuartspii2cdockeryoctobuildroot
reservation:yes
> full description
Ми шукаємо C++ Embedded Engineer, який долучиться до розробки складних програмних рішень для embedded-систем на базі Linux.
На вас чекає робота над цікавими інженерними задачами, де важливі швидкодія, стабільність і надійність продукту. Ви матимете можливість впливати на архітектуру системи, пропонувати власні технічні рішення та працювати разом із досвідченими інженерами над створенням якісного продукту.
Основні задачі:
- Розробка та підтримка embedded software на C++ під Linux із фокусом на продуктивність, надійність і масштабованість.
- Проєктування та реалізація системних компонентів: багатопоточність, міжпроцесна взаємодія (IPC), обмін даними, робота з real-time / near-real-time системами.
- Оптимізація та налагодження: аналіз продуктивності, виявлення й усунення memory leaks, deadlocks, data races та інших складних дефектів.
- Забезпечення якості коду: code review, unit- та integration-тестування, участь у технічних обговореннях і прийнятті архітектурних рішень.
- Кросфункціональна співпраця з командами Hardware, QA, DevOps, System Engineering та Product.
Основні вимоги:
- 3+ роки комерційного досвіду розробки на C++, впевнене знання C++17/20: RAII, smart pointers, move semantics, templates, constexpr, ефективне та безпечне керування ресурсами.
- Досвід розробки під Linux / Embedded Linux / POSIX: IPC (shared memory, pipes, sockets), робота з процесами та потоками, розуміння boot sequence й обмежень embedded-пристроїв (CPU, пам’ять, енергоспоживання).
- Сильні знання багатопоточності: std::thread, std::atomic, mutex, condition variables, thread pools, C++ memory model, досвід виявлення та усунення data races, deadlocks і проблем синхронізації.
- Досвід розробки performance-critical, near-real-time / real-time систем: оптимізація CPU, пам’яті та затримок, мінімізація динамічних алокацій у критичних ділянках коду.
- Розуміння принципів проєктування ПЗ: OOP/OOD, SOLID, design patterns.
- Інструменти розробки та налагодження: CMake, Git, gdb/lldb, Valgrind, perf, ASan, TSan, UBSan.
- Тестування: розуміння unit- та integration-тестування; GoogleTest / GoogleMock буде перевагою.
- Англійська мова на рівні, достатньому для роботи з технічною документацією та командної комунікації.
Буде перевагою:
- Automotive: ECU, ADAS, infotainment, камерні системи та сенсори, AUTOSAR, embedded middleware, functional safety, системи з високими вимогами до надійності та затримок.
- Medical: медичні пристрої, діагностика, медична візуалізація, лабораторне обладнання, safety-critical та regulatory-driven software.
- Robotics / Industrial Automation: ROS / ROS 2, сенсори, контролери, промислові інтерфейси, PID-регулятори, фільтр Калмана, основи теорії керування.
- Video / Computer Vision: GStreamer, FFmpeg, RTSP/RTP, H.264/H.265, OpenCV, робота з відеостримами, камерами та апаратним прискоренням.
- Embedded та інструменти: UART, SPI, I2C, Ethernet, cross-compilation, Docker, Yocto, Buildroot, Python для автоматизації, тестування та прототипування.
- CI/CD та тестування: GitHub Actions, GitLab CI, Jenkins, hardware-in-the-loop (HIL) testing.
- Додаткові знання: lock-free підходи та структури даних.
Компанія надає:
- Офіційне працевлаштування.
- Графік роботи 5/2, по 8 годин на день.
- 24 календарні дні оплачуваної відпустки.
- Оплату лікарняних.
- Бронювання працівників.
- Роботу в команді, яка створює інноваційні продукти та впроваджує сучасні технології.