Position Title: Engineer 1-3, Cyber Software (SafetyDirect)
Reports To: Engineering Supervisor, Software
Date Last Revised: February 10, 2020
POSITION SUMMARY:
Software engineer focused on embedded Linux software development and design for the Video and SafetyDirect product line.
ESSENTIAL FUNCTIONS:
- Develop application software (C++11) for embedded Linux systems
- Develop device drivers for embedded Linux systems
- Update and secure kernel and bootloader source
- Implement cybersecurity initiatives for secure boot, kernel, and app-level.
- Create unit tests using Test Driven Development
- Bring up and debug prototypes quickly
- Create and maintain tools to facilitate debugging and production
- Work in an Agile team environment.
- Improve processes, methods and equipment for cost, quality and delivery
Required Skills
KNOWLEDGE:
- Experience in the application of embedded microcontrollers and related peripherals
- Experience in the use of cross compilers, assemblers, and related software development tools
- Experience with software configuration management systems
- Experience in developing software test plans and test cases (module, integration, systems, functional, performance, and stress)
- Experience in vehicle communication networks for heavy duty vehicles (J1939, J1587, ISO 14229, LIN a plus
- Experience in managing engineering projects
- Understanding of software development techniques and methodologies (ASPICE, MISRA, SEI CMM, ISO26262)
- Experience in developing software test plans and test cases (module, integration, systems, functional, performance, and stress)
- Experience with test automation tools
- Experience with AUTOSAR a plus
- Experience with secure coding methods (Cyber security) a plus
SKILLS:
- Excellent organization skills
- Effective in working in teams and developing solutions through collaboration.
- Solid interpersonal, oral and written communication skills
- Self-starter with high level of energy
- Strong problem solving and troubleshooting skills.
- Standard embedded communication protocols (e.g. SPI, I2C, UART, USB, Bluetooth)
- Knowledge of wireless protocols (WiFi and Bluetooth) is a plus
- Proficiency with multi-threaded C/C++ programming
- Real time embedded C, C++ and assembly programming experience
- Knowledge of scripting languages such as PERL or Python.
- C++11 or above a plus
- Higher-level object-oriented languages such as Java or C# a plus.
- Experience in using modeling and simulation tools (MatLab, Simulink, ASCET) a plus.
- Experience in using Vector CANalyzer, CANdela, CANope, CANoe tools a plus.
- Knowledge of Yocto Linux and OpenEmbedded a plus
- Knowledge of digital image processing a plus
Required Experience
EXPERIENCE:
- 4 or more years of object-oriented programming in C++11, C#, or Java
- 1 or more years of device driver or kernel development
- 1 or more years of Python 3.x programming
- 1 or more years of cybersecurity development
- Experience in image processing algorithms a plus
EDUCATION:
- Bachelor's degree in Electrical Engineering, Software Engineering, Computer Engineering or equivalent.
- Master’s Degree in Engineering a plus
- Six Sigma Blackbelt Certification a plus