Senior Embedded Software Engineer (Maritime)
Los Angeles, California, United States On-site
$160,000–$220,000 a yearJobFig found this opening at its original source and checks that it remains available.
About the role
Odin Dynamics is hiring multiple Senior Embedded Software Engineers to serve as Responsible Engineers for critical embedded subsystems across our platform. Each engineer will take primary technical ownership of one of three areas: We are looking for engineers with deep expertise in at least one area who are also comfortable working across hardware, firmware, embedded Linux, controls, testing, and the broader software engineering domain. As the Responsible Engineer for your subsystem, you will own it throughout its lifecycle: requirements, architecture, detailed design, implementation, bring-up, verification, field testing, production support, failure analysis, and continued improvement after deployment. This is a hands-on individual-contributor position. You will be expected to write substantial production code, make technical decisions, mentor other engineers, and remain accountable for the performance and reliability of your subsystem. There are no organizational handoffs when a difficult problem crosses the boundary between software and hardware.
What you'll bring
- or
- Embedded Linux development
- Bare-metal or RTOS-based microcontroller development.
- Sufficient familiarity with adjacent embedded environments to collaborate across subsystem boundaries.
- Strong proficiency in at least one low-level systems programming language.
- Experience developing hard real-time or highly deterministic systems under latency, jitter, memory, and performance constraints.
- Experience bringing up new boards and embedded platforms within your primary technical specialization.
- Experience reading schematics, reviewing hardware interfaces, and debugging integrated hardware/software systems.
- Experience with common digital communication protocols and bus architectures.
- Experience using oscilloscopes, logic analyzers, in-circuit debuggers, and other hardware-debugging tools.
- Strong understanding of concurrency, synchronization, interrupts, DMA, timer configuration, memory allocation, scheduling, and low-level peripheral control.
- Experience writing maintainable production code, conducting code reviews, developing automated tests, using static analysis, profiling performance, and debugging complex timing or memory failures.