Embedded Robotics Software Engineer
Develop the embedded Linux software, vehicle interfaces, hardware abstractions, telemetry services, and fault-recovery systems connecting Vanthal autonomy software to unmanned aircraft.
- Department
- Software
- Location
- Annapolis, Maryland
- Region
- United States
- Job type
- Full-time
- Work arrangement
- On-site
- Base compensation
- $140,000–$190,000 per year
Eligible for an annual performance bonus based on team or department success.
ABOUT THE ROLE
Vanthal Technologies is seeking an Embedded Robotics Software Engineer to develop the software layer connecting autonomy, mission systems, communications hardware, edge computers, flight controllers, sensors, and physical unmanned aircraft.
This is a full-time, on-site position based at Vanthal’s operations in Annapolis, Maryland. The role includes software development, laboratory integration, bench testing, hardware-in-the-loop testing, and live aircraft testing.
The Embedded Robotics Software Engineer will build reliable interfaces for vehicle discovery, telemetry ingestion, command translation, device management, health monitoring, logging, software deployment, fault recovery, and hardware abstraction across multiple aircraft configurations.
This is a hands-on robotics position. The successful candidate must be comfortable working directly with embedded computers, flight controllers, radios, serial interfaces, electrical systems, test equipment, and physical aircraft.
This is not primarily a web-development, machine-learning, computer-vision, information-technology, or flight-controller-control-law position.
RESPONSIBILITIES
- Develop software for Linux-based edge-compute systems
- Develop vehicle interfaces for multiple unmanned-aircraft configurations
- Create hardware-abstraction layers that isolate higher-level software from vehicle-specific interfaces
- Develop automatic discovery and identification of connected vehicle hardware
- Integrate with Pixhawk-compatible flight controllers
- Integrate with ArduPilot and PX4-based systems
- Integrate with Betaflight-based systems where applicable
- Develop and maintain MAVLink interfaces
- Develop and maintain MSP interfaces where applicable
- Integrate serial, USB, Ethernet, and other hardware communications interfaces
- Ingest, validate, normalize, and distribute aircraft telemetry
- Translate higher-level mission commands into supported vehicle commands
- Develop command acknowledgement, timeout, retry, and failure-handling behavior
- Develop aircraft health-monitoring services
- Monitor flight-controller, communications, compute, power, storage, thermal, sensor, and peripheral status
- Develop watchdogs, heartbeats, and process-supervision systems
- Develop deterministic startup, initialization, shutdown, and restart behavior
- Develop fault-detection and fault-recovery behavior
- Develop structured system logging and diagnostic tools
- Implement local buffering and store-and-forward behavior where appropriate
- Develop software-deployment and update mechanisms for edge computers
- Support signed, versioned, and recoverable software releases where implemented
- Develop configuration-management systems for multiple aircraft types
- Integrate radios, sensors, cameras, navigation devices, and other peripherals
- Support communications interfaces with mesh-networking hardware
- Support video, telemetry, command, and mission-data pipelines
- Develop bench-test and hardware-in-the-loop tools
- Build simulators, mocks, and interface test harnesses
- Create automated integration and regression tests
- Analyze logs, telemetry, timing, resource usage, and hardware behavior
- Diagnose software, electrical, communications, and integration faults
- Support aircraft bring-up and new-hardware integration
- Participate in code review and software-quality practices
- Maintain clear interface, architecture, configuration, and deployment documentation
- Support laboratory, field, flight-test, and demonstration activity
- Work directly with autonomy, perception, mission-systems, networking, flight-test, electrical, and aircraft personnel
REQUIRED QUALIFICATIONS
- At least five years of professional software-engineering, embedded-systems, firmware, robotics, or closely related experience
- At least three years of experience integrating software with robotics, vehicles, flight controllers, sensors, radios, industrial equipment, or comparable physical hardware
- Strong professional experience with modern C++
- Professional experience with Python
- Experience developing software for Linux-based embedded computers
- Experience with serial, USB, Ethernet, CAN, or comparable hardware interfaces
- Experience implementing and debugging binary or structured communications protocols
- Experience developing multithreaded, asynchronous, event-driven, or real-time-adjacent software
- Experience interacting with hardware devices from user-space software
- Experience designing hardware-abstraction layers or modular device interfaces
- Experience developing health monitoring, watchdogs, fault handling, or recovery systems
- Experience analyzing logs, telemetry, timing, resource use, and system behavior
- Experience using oscilloscopes, logic analyzers, multimeters, serial consoles, or comparable diagnostic tools
- Experience with Git and collaborative software-development practices
- Experience writing automated unit, integration, or system tests
- Experience debugging problems that span software, hardware, power, networking, and configuration
- Strong understanding of software architecture, interfaces, state management, and failure modes
- Ability to read hardware documentation, interface-control documents, and electrical diagrams
- Ability to document protocols, interfaces, configurations, and recovery behavior
- Ability to communicate technical problems clearly
- Ability to work directly with aircraft, hardware, and test personnel
- Willingness to participate in hands-on laboratory and field testing
- Reliable attendance and professional follow-through
PROGRAMMING LANGUAGE REQUIREMENTS
Modern C++ is required. Python experience is required. Experience with C is strongly preferred.
OPERATING-SYSTEM REQUIREMENTS
Professional Linux development experience is required.
EDUCATION
A bachelor’s degree in computer science, computer engineering, electrical engineering, robotics, aerospace engineering, mechanical engineering, or a related technical field is preferred. Directly relevant embedded, robotics, and software-engineering experience may be considered in place of a degree.
PREFERRED QUALIFICATIONS
- Seven or more years of professional embedded, robotics, firmware, or systems-software experience
- Five or more years integrating software with physical robotic or vehicle systems
- Strong professional experience with C
- Experience with MAVLink
- Experience with MSP
- Experience with ArduPilot
- Experience with PX4
- Experience with Betaflight
- Experience with Pixhawk-compatible flight controllers
- Experience with ROS or ROS 2
- Experience with DroneCAN, UAVCAN, CAN, SPI, I2C, UART, or GPIO interfaces
- Experience with ARM-based edge computers
- Experience with NVIDIA Jetson or comparable edge-compute hardware
- Experience developing systemd services, containers, or embedded deployment systems
- Experience with cross-compilation and reproducible builds
- Experience with Yocto, Buildroot, or comparable embedded-Linux build systems
- Experience with signed software releases, secure boot, or rollback-capable updates
- Experience with time synchronization and timestamped sensor data
- Experience with networking under intermittent or degraded communications
- Experience with mesh-networking hardware
- Experience with video-streaming or low-latency media pipelines
- Experience with GStreamer or comparable media frameworks
- Experience developing device drivers or kernel modules
- Experience with software-in-the-loop or hardware-in-the-loop testing
- Experience creating hardware test fixtures and automated integration tests
- Experience with unmanned aircraft, ground robots, maritime robots, industrial robots, or autonomous vehicles
- Experience integrating cameras, navigation sensors, communications equipment, or payloads
- Experience with real-time operating systems
- Experience with FreeRTOS, Zephyr, NuttX, or comparable systems
- Experience with resource-constrained systems
- Experience optimizing CPU, memory, storage, power, or thermal performance
- Experience supporting live robotic-system testing
- Experience in a startup or rapidly developing hardware organization
- Military UAS, aviation, robotics, communications, or embedded-systems experience
WORKING CONDITIONS
This position includes software development, laboratory integration, bench testing, and field testing with physical unmanned-aircraft systems.
BENEFITS
- Three weeks of paid time off per year
- Health, dental, and vision insurance
- Paid maternity and paternity leave
- Eligibility for an annual performance bonus based on team or department success
HOW TO APPLY
Email your resume and a brief introduction to hiring@vanthaltech.com. Include “Embedded Robotics Software Engineer” in the subject line. Applicants may include links to relevant technical work, repositories, demonstrations, publications, or project portfolios, but these materials are optional.
Applications accepted on an ongoing basis.
APPLY BY EMAIL