Job Description :
An individual with a strong understanding of embedded software design and implementation. Designs range in complexity from ECUs with multiple microcontrollers to simple sensor circuits. The ideal candidate should have the ability to creatively solve embedded software design problems to maximize electronic system performance while minimizing cost. This position requires a detailed understanding of embedded control systems.

Job Description:
Develop control algorithms for embedded controllers
Implement control algorithms using Assembly and C programming languages
Develop MISRA C compliant code
Assist in developing hardware/software test plans
Develop detailed software design documentation
Develop unit and integration test plans and perform unit and integration testing
Oversee laboratory testing
Participate in design reviews
Occasional OEM customer interaction
Job Requirements:
B.S. in Electrical Engineering, Computer Science, Computer Engineering or Electronics Engineering with 5+ years of software development experience using C and assembly software for embedded controllers
Strong knowledge of CAN and LIN communication protocols and diagnostics
Working experience of HAL or HWIO design, Low level driver design (SPI, I2C, PWM, ADC, Flash and EEPROM), development of complex drivers for both on-chip microcontroller and ASIC peripherals.
Strong knowledge of layered software architectures and design of Interface layers
Experience with implementation of various diagnostic protocols such has UDS, ISO 14229, KWP2000
Ability to interpret circuit schematics for IO processing and configurations
Motor controls experience (permanent magnet brushed DC motors, DC stepper motors etc)
Experience using development tools: Cross-compilers, Vector tools, Debuggers, Oscilloscope, Logic analyzers.
Strong “hands-on” controller and software testing experience
Working knowledge of MISRA C and ISO 26262 Functional Safety requirements

Preferred qualifications:
Understanding of automotive EMC requirements
Working knowledge of LabVIEW programming
Understanding of safety critical systems design
Understanding of ASPICE software development process

Education:
Bachelor – Electrical Engineering/Electronics Engineering Technology/Computer Engineering/Computer Science
Master – Electrical Engineering/Computer Engineering/Computer Science (preferred)

Key Words: software engineers, electrical engineer, electrical engineering, embedded design engineer, bachelor electrical engineering, master electrical engineering, software, engineer, sensor design, 8-bit microcontrollers, 16-bit microcontrollers, 32-bit microcontrollers, low level drivers, LabVIEW, CAN networks,UDS, ISO 26262, MISRA, ASPICE, functional safety