Jobs · Engineering · Utah

Software Engineer, Android Native (C++/NDK)

Teal Drones · Salt Lake City, UT · 2 mo ago
EngineeringFull-time

Position Summary

Teal Drones is seeking an Android Engineer (C++/NDK) to develop and maintain native C++ ground control station functionality for our drone platforms. This role involves building, debugging, and optimizing native C++ systems on Android for mission planning, telemetry, and real-time vehicle control.

About the role

This role focuses on building, debugging, and optimizing native C++ systems on Android for mission planning, telemetry, and real-time vehicle control. You will work inside a QGroundControl (QGC/Qt) environment, but we are hiring first for strong C++ engineering depth.

Responsibilities

  • Own and maintain native C++ ground control functionality, including feature development, bug fixes, and long-term stability.
  • Build and optimize C++ components using the Android NDK to support real-time mission workflows and vehicle control.
  • Develop and maintain robust JNI boundaries between Android and native layers, with strong ownership of memory, threading, and lifecycle behavior.
  • Debug and resolve issues in multithreaded native code, event loops, and cross-language integration points.
  • Contribute C++ changes within QGC/Qt architecture while maintaining compatibility with upstream QGC.
  • Build, package, and optimize ARM64 Android applications, including APK/AAB generation, signing, and deployment workflows.
  • Debug Android-specific issues such as lifecycle handling, permissions, USB/serial communication, and network instability.
  • Integrate MAVLink communication over multiple transports (UDP, TCP, USB, Serial) on Android devices.
  • Optimize performance for real-time telemetry, video streaming, and map rendering on resource-constrained devices.
  • Ensure compatibility across a range of Android hardware (tablets, rugged devices, and field controllers).
  • Implement logging, diagnostics, and telemetry capture for field debugging.
  • Collaborate with embedded, firmware, and flight-test teams to debug real-world issues.
  • Support field testing, log analysis, and rapid iteration on mission-critical features.

Requirements

  • Bachelor’s or master’s degree in Computer Science, Computer Engineering, or a related field.
  • 5+ years of software engineering experience, with strong proficiency in modern C++.
  • Hands-on experience building and debugging native code on Android (NDK, JNI, profiling, debugging).
  • Strong multithreading/concurrency fundamentals and experience with performance-sensitive systems.
  • Experience with networking in mobile or embedded systems (UDP/TCP/serial/USB).
  • Strong debugging skills across multi-layer systems (native code, app layer, networking, OS).
  • Comfortable working in Linux-based development environments.
  • Experience with Qt/QML, QGroundControl, MAVLink, PX4, or ArduPilot is a plus, and can be learned on the job with strong C++ fundamentals.

Qualifications

  • Experience with QGroundControl (QGC) or similar ground control station software.
  • Experience with Qt/QML, including signals/slots and UI performance tuning.
  • Familiarity with MAVLink protocol and real-time communication systems.
  • Familiarity with video streaming pipelines (GStreamer, RTSP, WebRTC).
  • Knowledge of OpenGL or GPU rendering in Qt or Android.
  • Experience with map SDKs and geospatial visualization.
  • Experience with CI/CD systems (Jenkins, GitLab CI).
  • Exposure to robotics, UAV systems, or defense applications.
  • Experience working with USB/serial drivers on Android.
  • Knowledge of Python for tooling or automation.

Physical Requirements and Working Conditions

Must be able to walk, stand, and navigate large indoor and outdoor facilities for extended periods of time. Ability to lift, carry, and move materials and equipment weighing up to 25 lbs on a regular basis. Use of personal protective equipment (PPE) may be required in designated areas in accordance with safety protocols and company policy. May be required to climb ladders, stoop, kneel, or crouch during inspections, maintenance walk-throughs, or emergency response situations. Regular exposure to facility operations including noise, dust, temperature fluctuations, and industrial equipment. Occasional off-hours or weekend work may be required for emergency responses or project needs. Requires frequent use of a computer and standard office equipment for documentation, communication, and coordination tasks.

Similar jobs