Embedded Systems Software Engineer – Drivers & Platform Software
Cyient · California, United States · 4 wk ago
Information TechnologyFull-time
Key Responsibilities
- Design, implement, and maintain device drivers for MCU/SoC peripherals such as GPIO, ADC, PWM, timers, DMA, UART, SPI, I2C, CAN, Ethernet, and watchdogs.
- Develop and maintain BSPs, startup and boot code, linker scripts, memory maps, clock initialization, and hardware initialization sequences.
- Integrate and configure real-time operating systems (e.g., FreeRTOS, SafeRTOS, or equivalent); develop OS abstraction layers, scheduling concepts, inter-task communication mechanisms, and timing services.
- Design HAL and platform frameworks that enable reuse, scalability, and long-term maintainability across multiple hardware variants.
- Lead new board bring-up; debug low-level issues using JTAG/SWD, logic analyzers, oscilloscopes, and trace tools.
- Ensure deterministic interrupt handling, timing accuracy, memory efficiency, and adherence to real-time constraints.
- Apply defensive programming techniques; implement diagnostics, fault detection, and health-monitoring mechanisms at the platform level.
- Create and maintain driver APIs, platform design documentation, and low-level interface specifications.
- Collaborate with avionics, controls, and systems engineering teams during integration, issue investigation, and root-cause analysis.
- Contribute to requirements traceability, verification planning, configuration management, and certification readiness aligned with aerospace standards such as DO-178C and ARP4754A.
Required Qualifications
- Bachelor’s degree in Electrical Engineering, Computer Engineering, Computer Science, or a related discipline.
- 5–8 years of experience developing low-level embedded software for real-time systems.
- Strong proficiency in embedded C/C++, with deep understanding of interrupts, memory management, and real-time behavior.
- Hands-on experience developing device drivers, BSPs, and platform software for MCUs or SoCs.
- Experience integrating and configuring RTOS platforms.
- Strong understanding of MCU architectures, peripherals, clocks, reset logic, and memory subsystems.
- Experience with hardware bring-up and debugging tools (JTAG/SWD, oscilloscopes, logic analyzers).
- Familiarity with communication interfaces such as CAN, SPI, I2C, UART, and Ethernet.
- Proven debugging, analytical, and system-level problem-solving skills.