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.