Senior Embedded Software Engineer
Staff Embedded Software EngineerLocation: Greater Los Angeles Area, California (Hybrid)Position overviewOur 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.ResponsibilitiesDevelop 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 qualificationsBachelor'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 experienceCommunications-subsystem or radio-interface softwareStandardized packet formats and communications protocolsSerial and board-level hardware interfaces such as SPI, I²C and UARTEthernet-based embedded control systemsClosed-loop control and sensor or actuator managementHardware abstraction layers supporting multiple hardware configurationsFPGA-based or other programmable-hardware systemsLaboratory debugging using serial consoles, logic analyzers and related equipmentDiagnosing hardware timing, interface or signal-integrity problemsKeywords: Embedded Software Engineer, Embedded Linux, C, Linux Systems Programming, Device Drivers, Hardware Integration, Embedded Networking, Ethernet, FPGA, Real-Time Software, Control Systems