Embedded Software Developer

ASG Renaissance Dearborn, MI 48124 2017-02-18
The Embedded Software Developer, Drivers and OS is responsible for creating driver and kernel-level software for our customer's Sync infotainment system. This includes features such as navigation, media, entertainment, phone, voice, and vehicle interfaces.

-Develop C/C++ driver and kernel-level software for customer's SYNC infotainment system
-Create and integrate code to deploy an embedded OS on SYNC hardware: bootloader, kernel, drivers, build environment, and upgrade system
-Manage hardware variation by creating a common platform for existing and future hardware
-Participate in bring-up and validation of new hardware and boot-up performance optimization
-Participate root cause analysis of hardware quality problems and software defects
-Participate in system design, documentation, and testing to deliver a best-in-class infotainment

-Mastery of C/C++ language, GNU toolchain, and Unix: QNX, Linux, or equivalent
-Proficiency with serial data communication including: CAN, LIN, I2C, and SPI
-Proficiency with bus interfaces including: USB, PCI, SDIO, and memory-mapped interfaces
-Proficiency with consumer electronic protocols including: Bluetooth, USB, and Wi-Fi
-Experience with embedded build systems including: QNX system builder, buildroot, open embedded, or equivalent
-Experience developing programmable digital logic including: FPGA / CPLD design using VHDL, Verilog, or equivalent
-Experience with microcontrollers and/or ARM Cortex-M microprocessors
-Proficiency with revision control including: git, subversion, or equivalent
-Working knowledge and experience developing an infotainment feature technology, such as navigation, voice recognition, media phone, or a similar technology
-Excellent project management skills, customer focus, as well as written and oral communication skills
-Automotive product development process and quality experience (i.e., A-SPICE, FMEA, etc.)

Experience Required:
-5+ years C/C++ software development experience on embedded, mobile, or consumer electronic platforms

Education Required:
-Bachelor's degree in Computer Engineering, Electrical Engineering or Computer Science

Education Preferred:
-Master's degree in Computer Engineering, Electrical Engineering or Computer Science