[Remote] Senior Embedded Software Engineer
Note: The job is a remote job and is open to candidates in USA. Liquid Robotics is seeking a Senior Embedded Software Engineer to develop mission-critical software for autonomous maritime robotic systems. The role involves designing, developing, and maintaining reliable embedded software for long-duration autonomous maritime operations, collaborating with cross-functional teams, and implementing fault-tolerant architectures.ResponsibilitiesDerive requirements for, design, develop, and maintain reliable embedded software for long-duration autonomous maritime operations (90+ day uptime requirements)Integrate COTS and custom robotic components including servos and actuators, power management systems (batteries, solar charging), satellite radios and maritime communication equipment, and environmental and navigation sensors (GPS, IMU, depth sensors, cameras, acoustic sensors, etc.)Implement fault-tolerant architectures with watchdog systems, automated recovery, and graceful degradation to meet mission uptime and reliability goalsCollaborate with cross-functional teams including systems, mechanical, electrical, quality assurance, production, and product management to ensure integrated system performanceWork within a structured software development lifecycle combining Agile methodologies with V-model validation processes; participate in requirements, design, code reviews, and system integration testingDevelop and maintain device drivers, middleware, and mission code for ARM-based embedded Linux platforms (e.g., NVIDIA Tegra/Jetson, Raspberry Pi) in Debian-based environmentsDesign for real-time constraints, deterministic behavior on Linux, and power-aware sleep/wake strategies to maximize mission durationCreate and execute Software-In-Loop, Hardware-In-Loop, and on-device test methods; develop CI/CD pipelines, automated tests, and release artifacts to support multiple overlapping product linesTroubleshoot and root-cause hardware/software interactions; capture diagnostic data and coordinate corrective actions across engineering disciplinesProduce and maintain clear technical documentation including design notes, runbooks, test plans, and proceduresSkillsBS in Computer Science, Computer Engineering, or related discipline; advanced degree or technical credentials a plus10+ years of professional embedded software architecture, design, and development experienceProven experience shipping robotic or autonomous systems with long-duration uptime requirements and fault-tolerant architecturesStrong programming and architecture skills in C++ and Java for mission code; Python for tools, scripts, and automationDeep understanding of Linux system architecture, device drivers, and managing deterministic/real-time behavior on LinuxExperience with serial protocols (RS-232, RS-485), CAN bus, USB, UDP/TCP networks, and satellite communication systems (Iridium, Starlink)Experience with version control (Git), CI/CD pipelines, automated testing, and managing complex build systems across product linesKnowledge of sensor fusion, error correction, and degraded-mode operation strategiesUnderstanding of power management, thermal constraints, and environmentally robust software designExperience with power-aware software design, sleep/wake strategies, and long-duration mission planningFamiliarity with Software-In-Loop, Hardware-In-Loop, and on-device testing methodologiesU.S. Person status requiredAbility to obtain a US Secret Clearance requiredPreference given to candidates with active security clearance at time of hireCompany OverviewLiquid Robotics designs and manufactures the Wave Glider, the first wave and solar powered unmanned ocean robot. It was founded in 2007, and is headquartered in Sunnyvale, California, USA, with a workforce of 51-200 employees. Its website is http://www.liquid-robotics.com.