Full Job Description
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 B2C 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