Description:Research, design, develop, build, and test the low-layer software, such as OS integration, I/O drivers, boot, etc., which interfaces with Client's wide variety of electronic controls hardware (i.e. ECU/ECMs). This assignment builds and documents team software releases. This assignment also develops the low-layer software, such as I/O drivers, OS integration, boot, etc., which interfaces with Client's wide variety of electronic controls hardware (i.e. ECU/ECMs).
Responsibilities:Key areas of responsibility encountered in this role may include any or all of the following: concept, design, test, document, and promote new software features and processes; perform requirements analysis and decomposition; evaluate new languages, development tools, or processes; perform product maintenance; manage the software lifecycle through version control and configuration management; keep up to date on new technologies or develop new technologies; communicate technical information to customers, team members, suppliers and other units; and support and advise other engineers, managers, marketing personnel, customers and suppliers.
Depending upon the phase of the assignment, typical day would range from reading the client requirements, researching applicable ECU hardware/interfacing requirements, designing solutions, working with peers & tech leads to finalize solutions, coding solution in C, manage versioning, unit testing, and/or regression testing.
Techinical Skills Required: - Significant experience with Jenkins build platforms required (or comparable).
- Proficiency in Git version mgmt required. (Clearcase experience preferred.)
- Real world real-time embedded device driver experience is key requirement.
- Experience troubleshooting/debugging using tools such as oscilloscopes
- Experience designing embedded electronics controls, display, or telematics software, including development of device drivers, SPI/I2C peripheral interfacing, hardware diagnostics, operating system configurations, non-volatile memory interfacing, board initialization, and other chip-level interfacing.
- Experience with RTOS, control software design patterns and anti-patterns, ANSI C, Python, and other programming languages.
- OS integration, I/O drivers, boot experience
- Experience with software development processes such as Agile.
- Bash Shell scripting experience preferred.
Soft Skills Required: - Verbal and written communication skills
- Problem solving skills, customer service and interpersonal skills.
- Knowledge of reading schematics and data sheets for components.
- Ability to troubleshoot issues and make system changes as needed to resolve issue.
Education & Experience Required:Minimum BS in Computer Engineering / Electrical Engineering / similar required & 5-7 years industry experience. Will accept Master's or higher relevant internship/project experience toward minimum.
Disqualifiers/Red Flags:
Test engineering, controls engineering are not primary focuses. Can be part of work experience but should not be sole experience. Core skills above should be reflected in bulk of work experience.
Required Skills : Embedded Software Full Lifecycle
Additional Skills : Embedded Engineer