Frontend Engineer
Ми розробляємо передові програмні рішення та автономні системи для mission-critical та оборонних застосувань. Наші продукти поєднують безпілотні платформи, edge computing, AI-рішення, відеострімінг, телеметрію, картографію та системи керування місіями, які працюють у складних реальних умовах.
Ми шукаємо Frontend Developer / Qt-QML Developer, який буде відповідати за розробку, підтримку та розвиток багатоплатформених застосунків для керування безпілотними системами, моніторингу місій, роботи з картами, відеопотоками, телеметрією та зовнішніми пристроями керування.
Основна мета ролі
Розробка зручного, стабільного та продуктивного frontend-застосунку для керування безпілотними платформами, планування місій, відображення телеметрії, відео та оперативної інформації в реальному часі.
Основний напрям роботи — розвиток власного багатоплатформеного застосунку на базі Qt/QML та форку QGroundControl, інтеграція з backend-сервісами через GraphQL, підтримка картографічних компонентів, оптимізація роботи з джойстиками та візуалізація відеотрансляцій через GStreamer.
Ключові обов’язки
1. Розробка інтерфейсу користувача
- Розробка та підтримка багатоплатформеного UI на Qt/QML.
- Розвиток кастомного застосунку на базі форку QGroundControl.
- Реалізація екранів для:
- моніторингу стану системи;
- перегляду телеметрії;
- керування місіями;
- контролю підключених платформ;
- перегляду відеопотоків;
- роботи з картою;
- налаштування обладнання та каналів зв’язку.
- Оптимізація UI для роботи в польових умовах: мінімальна затримка, зрозумілі індикатори, стабільна робота на різних екранах.
- Розробка reusable QML-компонентів для різних продуктів і сценаріїв використання.
- Адаптація існуючих екранів QGroundControl під потреби продукту.
- Інтеграція з MAVLink-телеметрією, місіями, параметрами та статусами платформи.
- Підтримка desktop, tablet та field-station сценаріїв використання.
- Оптимізація існуючих модулів QGroundControl під специфічні сценарії керування дронами, USV, UGV або іншими роботизованими платформами.
2. Робота з картами та mission planning
- Розробка та підтримка картографічних UI-компонентів у Qt/QML.
- Відображення позицій платформ, маршрутів, зон, точок інтересу, цілей та місій на карті.
- Реалізація інструментів для планування, редагування та візуалізації місій.
- Підтримка map tile providers, offline maps та кешування карт.
- Відображення real-time телеметрії на карті.
- Візуалізація історії руху, активної місії, планового маршруту та фактичної траєкторії.
- Оптимізація продуктивності карти при роботі з великою кількістю об’єктів.
- Інтеграція карти з відео, телеметрією, місіями, backend-даними та командним інтерфейсом.
3. Інтеграція з backend через GraphQL
- Отримання та оновлення даних через GraphQL API.
- Реалізація клієнтської логіки для:
- запитів;
- мутацій;
- підписок;
- кешування;
- обробки помилок;
- reconnect/fallback-логіки.
- Відображення стану системи в UI на основі даних з backend, телеметрії та локальних сервісів.
- Реалізація real-time оновлення статусів, подій, команд, місій та підключених платформ.
- Узгодження frontend-моделей даних з backend API.
4. Робота з джойстиками та пристроями керування
- Підтримка та оптимізація роботи з джойстиками, геймпадами та іншими пристроями керування.
- Зменшення затримок, jitter та нестабільності керування.
- Обробка втрати з’єднання з пристроєм керування.
- Підтримка failsafe-поведінки на рівні UI/UX та інтеграції з системною логікою.
5. Відео та GStreamer
- Інтеграція відеопотоків у Qt/QML застосунок.
- Робота з GStreamer для прийому, декодування та відображення відео.
- Підтримка потоків з камер, дронів, наземних, морських або інших роботизованих платформ.
- Оптимізація latency та стабільності відеотрансляції.
- Реалізація перемикання між відеопотоками.
- Підтримка кількох одночасних відеопотоків.
- Відображення overlay-інформації: статус, телеметрія, індикатори, попередження, об’єкти або службова інформація.
- Інтеграція відеомодуля з картою, телеметрією та командним інтерфейсом.
6. Продуктивність, стабільність та UX
- Оптимізація продуктивності Qt/QML UI.
- Профілювання та усунення проблем із latency, frame drops, зависаннями UI.
- Забезпечення стабільної роботи застосунку при real-time потоках даних.
- Покращення UX для операторів у польових умовах.
- Робота з edge cases: втрата зв’язку, нестабільна телеметрія, відсутність відео, помилки API, перепідключення пристроїв.
- Підготовка frontend-рішень до польових та інтеграційних тестувань.
Вимоги до кандидата
Обов’язкові вимоги
- Комерційний досвід розробки з Qt/QML.
- Досвід роботи з C++ у контексті Qt.
- Розуміння архітектури багатоплатформених desktop/tablet застосунків.
- Досвід розробки складних UI з real-time оновленням даних.
- Досвід роботи з існуючим великим codebase.
- Розуміння асинхронної взаємодії з API.
- Досвід роботи з GraphQL або готовність швидко його опанувати.
- Базове розуміння роботи з відеопотоками.
- Досвід налагодження продуктивності UI.
- Досвід роботи з Git.
- Здатність самостійно розбиратися в існуючій архітектурі та пропонувати покращення.
Необхідні технічні навички
Практичний досвід або впевнене розуміння:
- Qt
- QML
- C++
- QGroundControl fork
- GraphQL
- GStreamer
- MAVLink
- Maps / GIS / geospatial UI
- Map providers and tile layers
- Offline maps
- Mission planning UI
- Joystick / HID devices
- Linux / Windows
- UDP / RTSP / RTP
- Git
Буде перевагою
- Досвід роботи з QGroundControl.
- Розуміння MAVLink, ArduPilot або PX4.
- Досвід роботи з GStreamer.
- Досвід інтеграції джойстиків, геймпадів або HID-пристроїв.
- Досвід роботи з картографічними компонентами в Qt/QML.
- Досвід роботи з картами у QGroundControl або подібних Ground Control Station системах.
- Розуміння роботи з:
- map tiles;
- offline maps;
- координатами;
- маршрутами;
- waypoints;
- polygons / zones;
- geofencing;
- mission planning UI;
- map overlays;
- POI;
- real-time asset tracking.
- Досвід інтеграції карт із real-time телеметрією.
- Досвід роботи з GIS/geospatial UX.
- Досвід візуалізації великої кількості рухомих об’єктів на карті.
- Досвід розробки Ground Control Station, Mission Control.
- Досвід з Linux.
- Розуміння мережевих протоколів: UDP, TCP, RTSP, RTP.
- Досвід роботи з low-latency video streaming.
- Досвід розробки UI для embedded, industrial або military-grade систем.
- Досвід у доменах UAV / USV / UGV / robotics / autonomous systems.
Особисті якості
- Високий рівень відповідальності та ownership mindset.
- Уважність до деталей в UI/UX.
- Системне та аналітичне мислення.
- Здатність працювати з комплексними технічними системами.
- Готовність розбиратися в існуючому codebase.
- Здатність працювати в умовах невизначеності.
- Комфортна робота у швидкому R&D та mission-driven середовищі.
- Проактивність та бажання постійно покращувати продукт.
- Орієнтація на практичний результат, стабільність і зручність для кінцевого оператора.