> Markdown version of [/jobs/ext/477341-software-engineer-android-native-c-ndk](https://www.wearedevelopers.com/jobs/ext/477341-software-engineer-android-native-c-ndk). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Software Engineer, Android Native (C++/NDK) - **Company:** Red Cat Holdings Inc - **Location:** Salt Lake City, UT, United States - **Experience:** Expert - **Contract:** Permanent contract - **Skills:** Java (Programming Language), Android Software Development, Android NDK, Software Bug Management, C++ (Programming Language), Mobile Application Development, Profiling, Computer Engineering, Continuous Integration, Data Visualization, Software Debugging, Linux, Firmware, Design of User Interfaces, Hardware Interface Design, Java Native Interface, Python (Programming Language), Log Analysis, OpenGL, Performance Tuning, Qt Modeling Language (QML), Qt (Software), Memory Leaks, Serial Communications, Software Engineering, Transmission Control Protocol (TCP), WebRTC, Data Logging, Multithreading, Real Time Systems, Delivery Pipeline, Tablet Computers, Kotlin, RTSP, Gitlab-ci, Material UI, Information Technology, Build Tools, Video Streaming, C++14, Jenkins - **Published:** June 4, 2026 - **Apply:** https://www.juju.com/job/00000000g4saqz ## About the Role + 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. Additional Desired 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. + Familiarity 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. ## Description Teal Drones is looking for a hands-on Android Engineer (C++/NDK) to own and evolve the Android-based ground control station experience for our drone platforms. 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. If you are excellent in C++ and Android native development, we expect you can ramp quickly on QGC/Qt specifics. The questions you'll be asked every day are ones like: Why is MAVLink telemetry dropping under load on this Android device? How do we improve reliability and latency across UDP/TCP/USB/Serial paths? What's the fastest way to debug native threading, memory, and performance issues on ARM64 Android in field conditions? We are looking for someone comfortable across Android internals, C++/NDK, networking, hardware interfaces, and real-time systems. Prior Qt/QGC experience is valuable, but not required if you bring strong adjacent experience. Essential Duties and Responsibilities Android Native (C++/NDK) Development + 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. Android Platform Integration + 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). MAVLink & Drone Communication + Implement and debug MAVLink message handling, routing, and reliability under varying network conditions. + Diagnose telemetry dropouts, latency issues, and message parsing errors. + Extend MAVLink functionality for custom payloads or vehicle behaviors. + Collaborate with firmware engineers to ensure end-to-end communication reliability between drone and ground control systems. UI/UX & Qt/QML Development + Design and implement responsive, real-time UI components for mission-critical workflows. + Optimize rendering performance for maps, overlays, and telemetry dashboards. + Customize mission planning interfaces and flight data visualization in QGC/Qt and Android-integrated surfaces. + Ensure usability in field conditions (sunlight readability, touch responsiveness, and offline operation). Build Systems & Tooling + Maintain and improve build systems across C++, Qt, and Android toolchains. + Manage Qt versions, Android SDK/NDK dependencies, and cross-compilation workflows. + Automate builds and testing pipelines using CI/CD systems (e.g., Jenkins or GitLab CI). + Debug build failures across native, Qt, and Android layers. Reliability & Performance + Profile and optimize CPU, memory, and battery usage on Android devices. + Debug crashes, ANRs, and memory leaks across C++ and Java/Kotlin boundaries. + Ensure stable operation during long-duration missions and intermittent connectivity. + Implement logging, diagnostics, and telemetry capture for field debugging. Security & Compliance + Ensure secure communication channels between Android devices and drones. + Manage permissions, secure storage, and device access policies on Android. + Support compliance requirements for government and defense-related deployments. Collaboration & Field Support + Work closely with embedded, firmware, and flight-test teams to debug real-world issues. + Support field testing, log analysis, and rapid iteration on mission-critical features. + Provide tools and workflows for internal teams to test and validate QGC changes ## Related Videos - [Computer Vision from the Edge to the Cloud done easy](https://www.wearedevelopers.com/videos/263-computer-vision-from-the-edge-to-the-cloud-done-easy) - [Docker network without Docker](https://www.wearedevelopers.com/videos/1418-docker-network-without-docker) - [For the Cars and the Curious: Android Drift](https://www.wearedevelopers.com/videos/499-for-the-cars-and-the-curious-android-drift) - [Unleash your web skills on native!](https://www.wearedevelopers.com/videos/122-unleash-your-web-skills-on-native) - [Docker exec without Docker](https://www.wearedevelopers.com/videos/1094-docker-exec-without-docker) - [The best of two worlds - Bringing enterprise-grade Linux to the vehicle](https://www.wearedevelopers.com/videos/67-the-best-of-two-worlds-bringing-enterprise-grade-linux-to-the-vehicle) ## Related Articles - [What’s the Difference between a Junior, Mid, and Senior Developer?](https://www.wearedevelopers.com/magazine/238-what-s-the-difference-between-a-junior-mid-and-senior-developer) - [Highest Paying Tech Companies for Developers](https://www.wearedevelopers.com/magazine/220-highest-paying-tech-companies-for-developers) - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [Best Countries for Software Engineers](https://www.wearedevelopers.com/magazine/267-best-countries-for-software-engineers) - [Fully Remote Software Engineer Jobs](https://www.wearedevelopers.com/magazine/447-fully-remote-software-engineer-jobs) - [The Most Popular IT Jobs on the Market](https://www.wearedevelopers.com/magazine/376-the-most-popular-it-jobs-on-the-market)