The Embedded C Development Engineer will develop embedded software solutions in the C programming language to meet system requirements. This job involves using system requirements to design, develop, and test software components used in large earth moving machines and commercial engines. The software components must comply with specific software architecture standards and all work will be performed as part of existing teams following a common process. The software is primarily in the embedded data link domain.
- Perform requirements analysis, software design, static and dynamic code analysis.
- Implement software.
- Handle development/execution of test procedures.
- Interface between hardware and software.
- Evaluate operational performance of an overall system.
- 5+ years of industry related embedded software development experience. Software work experience must include designing, developing, and troubleshooting software running on a deployed system.
- Good people interaction and teamwork skills.
- Strong oral and written communication skills.
- Experience in a Linux software development environment.
- C, C++, and Python programming language expertise.
- Experience with embedded networks such as J1939, CAN, etc.
- Knowledge of industrial protocols such as Ethernet/IP, PROFINET, Modbus.
- Ethernet & TCP/IP network experience.
- Git experience (Subversion or other VCS experience also beneficial).
- Experience with ARM and x86 processors.
- Experience with Motorola 32-bit embedded processors.
- Embedded Linux operating system experience.
- Knowledge of Agile software development practices.
- Bluetooth Smart expertise.