JOB PURPOSE: Develop, integrate or test complex autonomy systems that meet prioritized requirements for autonomous machine programs that focus on machine safety and productivity, and provide a differentiated product value to our customers.
JOB RELATED STATISTICS: Ability to meet NPI milestones for each program by delivering quality systems on time that meet agreed upon features for each milestone. Key metrics include: number of total issues for each release, number of direct customer issues and number of days from target date.
JOB DUTIES: For Caterpillar, digital means using technology to extract data from our machines and engines and transform it into valuable recommendations or “insights,” to help customers make better, more informed decisions and help Caterpillar make robust products with the lowest total ownership cost. Our products generate and process large amounts of data from sensors, on-board models, and control algorithms in real-time creating real-world machine usage information. As part of the overall digital strategy Caterpillar has developed an integrated family of Autonomous and semi-autonomous machines. This family of products is branded Command. The Command product range links with other mining and business information systems and is an integral part of the Mining Technology Enabled Solutions vision.
The Automation Engineer position develops, integrates and/or troubleshoots autonomy software systems used for autonomous machines. This may include complex autonomy onboard system design work, subsystem testing or system integration. It requires specific knowledge of machine systems or automation technologies such as Path Planning, Perception and Positioning. The position uses technical automation knowledge that often must be combined with application/software development skills to develop high quality automation software. This position will translate complex program or subsystem requirements into actionable development efforts. The incumbent will evaluate internal and external automation algorithms to decide which are most appropriate, and develop algorithms and code quality software.
In order to develop the systems effectively, this position must work closely with Component Hardware team members to select or understand the autonomy hardware (ECM’s sensors, etc.) that will be used. A strong knowledge of complex, existing external automation solutions and algorithms is necessary to help determine appropriateness, and if new algorithms are needed. Knowledge of existing internal automation applications and libraries is important to drive consistency. Much development work may be related to existing applications, therefore a strong ability to read and understand existing software is essential to developing updates and improvements. Both new application development and modifications to existing code bases will be done, which requires significant software development skills.
The position responsibilities include a strong quality focus through unit testing of the developed code, and significant interaction with downstream integration points including: Software in the Loop (SIL), Hardware in the Loop (HIL), Simulation, Substitute machine testing and actual machine testing.
Advanced data analysis and systems analysis efforts and skills are needed to help troubleshoot complex issues from test or customer sites, and to examine information from test sites to improve overall systems performance.
Good communication is expected for technical status updates, subsystem reviews, and when working closely with other system developers, support teams and testing staff in multiple geographic locations and organizations.
Keeping up with industry trends and new technology breakthroughs is essential and requires continuous learning through self/internet study, as well as interaction with other autonomous engineers through conferences and papers.
BACKGROUND/EXPERIENCE: Requires either a:
- Bachelor degree in an accredited Engineering or Computer Science curriculum, at least one year of experience with design development of complex autonomous vehicles and at least one year of deep C++ programming experience
- Or an advanced degree (i.e. Masters, PhD) in an Engineering or Computer Science related field.
Advanced degrees are highly desired. Incumbents must have demonstrated excellent analytical skills and the ability to perform complex assignments. Requires Linux operating system experience and a proven ability to read and understand code developed by others. Must have strong problem solving skills, analytical skills and the ability to communicate technical information effectively. Relocation is available for this position.
- Salary Range 30,000 to 40,000
- Salary payable Per Month