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

Red Cat Holdings Inc
Salt Lake City, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Salt Lake City, United States of America

Tech stack

Java
Android
Android NDK
Software Bug Management
C++
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
Log Analysis
OpenGL
Performance Tuning
Qt Modeling Language (QML)
QT
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 Design
Information Technology
Build Tools
Video Streaming
C++14
Jenkins

Job 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

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.

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.

Benefits & conditions

  • 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.

Background Check

This position will require successfully completing a post-offer background check. Qualified candidates with a criminal history will be considered and are not automatically disqualified, consistent with federal and state law.

EEO and ITAR/EAR Work Authorization Disclosure

Red Cat Holdings provides equal employment opportunities (EEO) to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state or local laws. This position requires direct or indirect access to hardware, software, technology or technical data controlled under the International Traffic in Arms Regulations (ITAR) and the Export Administration Regulations (EAR). Successful candidates for positions subject to ITAR/EAR restrictions must provide proof of U.S. Citizenship or Permanent Residence and must not require sponsorship for export-restricted work authorization.

E-Verify

The company participates E-Verify (https://www.e-verify.gov/sites/default/files/everify/posters/EVerifyParticipationPoster.pdf) ensure eligibility for employment and compliance with Right to Work (https://www.e-verify.gov/sites/default/files/everify/posters/IER_RightToWorkPoster%20Eng_Es.pdf) rules.

Compensation: Base pay, plus generous annual equity package and potential bonuses.

Apply for this position