Embedded Software Engineer - Real-Time Linux
Develops real-time Linux platforms for AI robotics, integrating controls, ML algorithms, and drivers on multicore ARM systems. Requires MS degree, production Linux RT experience, C/C++ proficiency, and ROS 2 expertise.
About the job
Responsibilities
- Design, adapt, and integrate POSIX-compliant systems for advanced robotics and machine learning (ML) applications.
- Develop the framework for integration of controls, machine learning and supporting algorithms with real-time tasks.
- Collaborate with Controls and Machine Learning engineers to develop and optimize high performance autonomous systems.
- Develop and maintain drivers for integration with real-time robotic middleware.
- Build tools to monitor, verify and optimize system performance, ensuring reliable and deterministic behavior.
- Contribute to a deterministic and reproducible build and test environment for efficient development.
- Work with functional safety engineers to support standards compliance, audit readiness, and traceability.
- Develop robust solutions for over-the-air (OTA) updates, calibration management and software deployment strategies.
- Tackle complex, real-world challenges alongside a multidisciplinary team of experts.
Qualifications
Must-have
- MS in computer engineering, computer science or a related discipline.
- Production experience with bringup and configuration of Linux PREEMPT_RT and similar operating systems (e.g. QNX).
- Strong understanding of Linux device trees, scheduling and memory management.
- Experience with multicore ARM SoCs, interprocess/intercore communications and message passing.
- Proficiency in C and C++
- Experience with ROS 2 middleware and alternatives (e.g. FastDDS, CycloneDDS, Zenoh).
- Familiarity with container technologies (Docker, Containerd, Overlayfs).
- Understanding of toolchains (compilers, linkers, debuggers, static analysis tools)
Nice-to-have
- Familiarity with communication protocols (e.g. Ethernet, EtherCAT, CAN, CANOpen).
- Knowledge of ARM SIMD/NEON architecture extensions.
- Proficiency in additional programming languages (e.g. Python, Rust, Golang).
- Expertise with multi-language build systems (e.g. Bazel).
- Experience with Hypervisors (e.g. QNX Hypervisor, Jailhouse, Xen).
- Understanding of container orchestration (Kubernetes).
Skills
C++, C, Linux Preempt_Rt, Ros 2, Arm Socs, Docker, Containerd, Qnx, Fastdds, Cyclonedds, Zenoh, Kubernetes, Rust, Python, Bazel
Similar jobs
Embedded Engineering jobsDesign and implement real-time control infrastructure for intelligent, reliable robots, spanning actuators, hardware interfaces, state estimation, and whole-robot behavior. The role requires strong robotics and control fundamentals, hands-on hardware experience, and production-quality C++ or Rust development.
Own end-to-end software integration for semiconductor manufacturing equipment, spanning firmware, control software, electronics, actuators, testing, and production handoff. Requires 3+ years developing software for physical systems, proficiency in C, Rust, and Python, and strong hardware debugging skills.
Develops operating-system platforms, device drivers, and infrastructure for autonomous-vehicle robotics systems. The role requires 4+ years of production software experience, strong Linux internals expertise, and proficiency in C/C++ plus scripting languages.
Researches and expands vehicle telematics coverage by analyzing automotive network traffic, OEM documentation, and field logs. The role requires hands-on vehicle interfacing, reverse engineering, programming, physical debugging tools, and automotive communication standards expertise.
Designs and integrates C++ autonomy software with UAV hardware, autopilots, sensors, and communication systems, supporting SIL/HIL validation and live flight testing. Requires 3+ years of robotics integration experience, U.S. citizenship, and security-clearance eligibility.