Staff Embedded Software Engineer - Linux and Hardware Systems
Location: Greater Los Angeles Area, California (Hybrid)
Position overview
Our client is an engineering-led technology company developing advanced systems for demanding high-reliability environments.
They are seeking an experienced embedded software engineer to develop Linux-based software that interacts directly with custom electronics and communications hardware. The role spans application software, low-level hardware integration, networking, control and system-health functionality.
You will work closely with embedded software, electrical and programmable-hardware engineers throughout development, integration and testing.
Responsibilities
- Develop application-level software for embedded Linux platforms.
- Design and implement Linux device drivers for sensors, actuators and other hardware components.
- Create hardware abstraction layers and clean software interfaces for custom electronics.
- Develop software for hardware control, monitoring and closed-loop operation.
- Implement network services, packet-processing functionality and protocol interfaces.
- Integrate communications hardware with wider software and data systems.
- Develop fault detection, recovery, status reporting and operating-mode functionality.
- Diagnose complex integration problems across Linux software, electronics, networking and programmable hardware.
- Support hardware integration, laboratory testing and system-level verification.
- Improve software performance, reliability, maintainability and testability.
- Contribute to software architecture, engineering reviews and technical decisions.
Required qualifications
- Bachelor's or Master's degree in Computer Science or Electrical Engineering.
- Five or more years of relevant embedded-software development experience.
- Strong systems-programming skills in C.
- Experience developing software that communicates directly with hardware through device drivers, register-level interfaces or hardware-bus protocols.
- Practical Linux device-driver development experience.
- Experience designing embedded or real-time software.
- Strong network-programming knowledge, including sockets, packet handling and Layer 2/3 protocols.
- Experience implementing software that monitors or controls physical hardware.
- Sufficient understanding of digital communications to integrate software with communications equipment.
- Strong debugging skills across software and hardware boundaries.
- Ability to collaborate effectively with software, electrical and programmable-hardware engineers.
Desirable experience
- Aerospace, communications or other high-reliability embedded systems
- Communications-subsystem or radio-interface software
- Standardized packet formats and communications protocols
- Serial and board-level hardware interfaces such as SPI, I²C and UART
- Ethernet-based embedded control systems
- Closed-loop control and sensor or actuator management
- Hardware abstraction layers supporting multiple hardware configurations
- FPGA-based or other programmable-hardware systems
- Laboratory debugging using serial consoles, logic analyzers and related equipment
- Diagnosing hardware timing, interface or signal-integrity problems
Keywords: Embedded Software Engineer, Embedded Linux, C, Linux Systems Programming, Device Drivers, Hardware Integration, Embedded Networking, Ethernet, FPGA, Real-Time Software, Control Systems and Aerospace Technology