Sr. Software Engineer
Role details
Job location
Tech stack
Job description
Responsible for the design, implementation, integration test and debug of embedded C/C++ software for microcontrollers running on Advanced Driver Assistance Systems (ADAS) controllers. Responsible for early board bring-up and hardware/software (hw/sw) debugging of ADAS controllers. Develop low level device drivers, Board Support Package development for microcontroller real time operating system (RTOS). Develop software in compliance with a formal ASPICE/CMMi based global product engineering process (GPEP). Develop and debug BSPs, bootloader software and device drivers for microcontrollers. Develop and analyze requirements, design, implement, integrate and test C code for automotive production embedded electronic module in the vehicle environment. Develop portable, reusable and modular software compliant to automotive requirements and design guidelines. Implement customer and application specific requirements in the automotive software. Review schematics and work closely with hardware team for early board bring up and debugging sw/hw issues. Develop low level drivers for complex SOC including Flash, DDR and peripherals. Integrate SDKs from vendors like TI, NXP, Renesas and Nvidia (Bullet point should not exceed one line). Development of video pipeline interfaces for GMSL/FPD-based cameras across various SoCs. Set operational specifications and formulate and analyze software requirements. Modify existing software to correct errors, to adapt it to new hardware, or to upgrade interfaces and improve performance. Advise customer about, or perform, maintenance of software system. Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system. Consult with engineering staff to evaluate interface between hardware and software, develop specifications and performance requirements, or resolve customer problems. Direct software programming and development of documentation. Store, retrieve, and manipulate data for analysis of system capabilities and requirements. Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects. Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance. Coordinate installation of software system. Prepare reports or correspondence concerning project specifications, activities, or status.
Requirements
Master Degree in Computer Science, Electrical Engineering, Digital Systems and Computer Electronics or foreign educational equivalent. Two years of experience in the position offered, or in a similar position, such as Assistant Consultant (Embedded Systems). Experience must include device driver development for communication peripherals (I2C, SPI, UART, Ethernet, HDLC) using Embedded C/C++; Real-time embedded software development on multicore SoCs and microcontrollers (TI, Freescale, ST); Board Support Package (BSP) development for ARM-based processors; and use of T32 Debugger, logical analyzers, I2C/SPI protocol analyzers, code analysis tools (Helix QAC, Klockwork).