Job Description:
Duties and responsibilities:
Collaborate to deliver base software in support of future Advanced Driver Assistance Systems (ADAS)
Contribute to the development of requirements, high level design, and detailed design documents for Linux/QNX/RTOS board support package (BSP) software
Prototype on evaluation and first sample hardware to drive software architecture decisions while properly leveraging hardware capabilities
Provide software support and bring-up of hardware modules
Test and debug BSP SW to ensure quality and reliability
Adhere to common software development practices, including source code management and agile development methods/scrum.
Required knowledge, skills, and experience:
Bachelor's Degree in Computer Science, Electrical Engineering or related field
4+ years of C/C++ development within Linux/QNX/RTOS domain
2+ years developing bootloaders, drivers, or BSP in Linux/QNX/RTOS
Desired experience:
Master's Degree in Computer Science, Electrical Engineering or related
8+ years of C/C++ development within Linux/QNX/RTOS
4+ years developing Linux/QNX/RTOS drivers
Experience with common BSP features running on a multi-core SoC (POST, boot, inter-processor communication, memory map, etc)
Experience developing for Uboot, secure boot, custom bootloaders, software download, over-the-air update, or in-field software update solutions
Experience developing drivers and debugging common interfaces such as I2C, SPI, UART, eMMC, PCIe, SDIO, CAN-FD, and Ethernet
Experience with common SoC hardware such as WDT, DMA, Timers, and accelerators (Video, AES, SHA, RNG, etc.)
Solid ability to understand hardware architectures and schematics
Experience debugging through JTAG, oscilloscope, logic analyzer, and multimeter
Experience developing and maintaining requirements
Experience leading Agile/Scrum teams and mentoring junior engineers
Familiarity with Classic & Adaptive Autosar stacks
Experience developing embedded software in a regulated or high reliability environment (Auto/Medical/Defense Industry)