Embedded Software Engineer Real-Time Systems & Embedded Controllers
Location: Lake Forest, CA On-site Experience: 5+ years
Responsibilities
Develop and maintain embedded C/C++ software for RTOS, Linux, and real-time systems, including hardware interfaces, communication protocols, and device drivers. Support system integration, debugging, performance optimization, test automation, and end-to-end validation of embedded applications.
- Design, develop, and maintain C/C++ software for RTOS, Real-Time Linux, and Linux-based embedded controllers for real-time sensing, communication, monitoring, and device control.
- Develop multi-threaded and real-time applications, including task scheduling, interrupts, synchronization, IPC, timers, state machines, watchdogs, and fault handling.
- Develop and integrate low-level hardware interfaces and communication protocols including GPIO, UART, SPI, I C, CAN/CAN-FD, Ethernet, TCP/IP, and UDP.
- Develop and debug device drivers, BSP/HAL components, and hardware/software interfaces.
- Perform system-level debugging and performance analysis, including latency, jitter, CPU/memory utilization, and communication performance.
- Support networking and application interfaces including REST, MQTT, gRPC/Protobuf, and related technologies.
- Develop Python tools for test automation, diagnostics, data collection, and hardware validation.
- Participate in architecture/design reviews, code reviews, testing, integration, and system validation.
Required Qualifications
- BS/MS in Computer Engineering, Electrical Engineering, Computer Science, or related field, with 5+ years of embedded/real-time software development experience.
- Strong experience in Embedded C/C++ development with working knowledge of Python and a solid understanding of computer architecture, memory management, and RTOS concepts.
- Hands-on expertise in embedded controllers, hardware interfaces (UART, SPI, I2C, CAN, Ethernet), Embedded Linux, multithreading, and device-level software development.
- Ability to work across hardware-software integration, debug complex system issues, and analyze schematics, datasheets, and low-level interfaces to deliver reliable real-time embedded solutions.