Middle/Senior Software Engineer for Applications Development
Summary
Develop and maintain Android and embedded Linux applications for UAV operations, integrating with hardware and communication systems using C/C++, Kotlin/Java, and Python.
Middle/Senior Software Engineer for Applications Development
Опис
Вимоги:
* Proven commercial experience with C/C++ — 2+ years
* Experience with Android application development — 3+ years
* Experience with Kotlin and/or Java for Android
* Experience with Android SDK, Android Studio, Gradle
* Experience with Linux-based systems and embedded Linux environments
* Experience with networking: TCP/UDP protocols, sockets, REST/WebSocket APIs
* Experience with CMake build systems
* Experience with version control systems — Git
* Experience with application development on Linux, Windows, or macOS
* Ability to debug and maintain existing C/C++ and Python codebases
Обов'язки:
* Develop and support UAV-related Android applications used for field operations, diagnostics, configuration, monitoring, and control support
* Support existing software infrastructure: debug and fix issues in C/C++/Python code, optimize application performance, and improve reliability
* Design and modify UI/UX for Android and desktop applications to better suit end-user needs in UAV operational scenarios
* Integrate Android applications with UAV control station software, companion computer software, antenna station software, and embedded Linux systems
* Work with communication protocols, telemetry data, networking, and device-to-device interaction
* Add new features to company proprietary software stack, including Android apps, Linux-based tools, companion computer software, and UAV support utilities
* Build, package, and deploy applications to be shipped to end-users
* Write and maintain documentation for software tools, integrations, and user workflows
* Assist the hardware team with testing new components, communication modules, payloads, and field equipment
Буде плюсом:
* Experience with Qt/QML and C++ UI development
* Experience with Android NDK and integration of native C/C++ libraries into Android applications
* Experience with custom Android builds or Android-based embedded systems
* Experience with Linux distribution build systems
* Experience with MCUs — STM32 series or others, knowledge of MCU peripherals, protocols, RTOS, IDEs, and firmware build systems
* Experience with profiling C/C++ applications on embedded systems
* Knowledge of Python and/or Rust
* MAVLink protocol and ArduPilot ecosystem integration or usage experience
* Experience with multimedia, video codecs, video streaming protocols, GStreamer, RTSP, or WebRTC
* Experience with maps, offline maps, geolocation, GPS/GNSS data, and telemetry visualization
* Experience with setting up CI/CD pipelines for Android, embedded, or cross-platform products
* Experience with testing frameworks and implementing automated testing for mobile and embedded-related projects
* Experience with BLE, Wi-Fi, USB, serial communication, or custom hardware integration on Android devices