Bachelor of Science (Master preferred) in computer science, or equivalent degree.
Essential Duties and Responsibilities:
Develop embedded C software on S32k3X4 family of arm processors, including improvements to existing software, development of new features
Participate in all stages of software development, including requirements analysis, design, implementation, test, and maintenance
Address software issues and work with software and system engineers to identify the root cause
Help investigate and collect information to resolve process or design issues found on a current design
Identify software performance improvements through test driven development, automated unit testing, and comprehensive integration testing.
Skill Sets Required:
8-14 years validated experience (dependent on level) passionate about embedded software coupled with a Bachelor of technology in Electronics (EC, EE preferred)
Experience with developing high performing, fault tolerant, highly available C application software on multi-core processor
Good knowledge of mutual exclusion, synchronization, interrupt handling, inter-process communication, memory management, multi-threading, Free RTOS, SAFE RTOS utilities and system calls
Strong fundamental embedded operating system concepts
Experience with BMS (Battery Management system) is a must.
Experience with I2C, SPI, UART, CAN, LIN, Ethernet drivers
Comfortable debugging complex system/platform issues such as crashes and traps, memory leaks, issues with inter-process communications, CPU hogs etc.
Independent self-starter and committed to delivering on daring deadlines
Comfortable in a team environment with ability to work with little supervision
Must be fast learner with excellent embedded software debugging skills
Experience with code repository and versioning tools such as Bitbucket
Experience working with EB tresos, IAR arm compilers
Effective written and verbal communications skills.