Job Description
Required Education/Experience:
Bachelor's degree in engineering, Computer Science, or a related technical field
Required Qualifications:
The hauling application team is responsible for the overall onboard solution (vehicle level) for CLIENT autonomous haulage machines.
This position is to work under the direction of the teams system integration lead.
Contribute to onboard system designs and decisions
Identify and evaluate potential solutions
Analyze value and risk of proposed changes
Break down solutions into actionable delivery elements
Triage, troubleshoot, and resolve system level issues
Design electronic and network architecture for autonomy tech stack used across all hauling autonomy products.
Document designs and coordinate delivery with partner teams
Required Technical Skills:
Experience with development processes
Experience with autonomous or automated robotics
Experience with robotic hardware and electronic systems
Requirements decomposition and solution creation
Risk and benefit tradeoff analysis
Technical writing - design documentation
Troubleshooting
Preferred Technical Skills:
Experience with mining, construction, or agricultural machines and methods
Experience with CLIENT technology products
Familiarity with product lifecycle
Data analysis and issue investigation
Safety frameworks, such as functional safety or SOTIF
Simulation tools for development and validation
C++ and Python familiarity
Development in a Linux environment
CAN and Ethernet familiarity
Top 3 Skills:
Robotics and autonomy fundamentals
Effective collaboration across teams with diverse skills
Design process - evaluate tradeoffs without bias
Work environment:
This role is primarily performed in an office environment.
Some tasks may include time in laboratory or validation environments.
Occasional travel to proving grounds or customer sites may be required.
Responsibilities:
Collaborate within the hauling team, with process partners, and with SMEs to identify potential solutions and select one.
The system integration lead assigns a task for a new requirement or issue.
Analysis may be required to understand the problem or to evaluate benefits and risks.
Document the selected design and break it down into work items assigned to the appropriate teams.
Coordinate hardware availability with the component teams, development teams, and validation teams.
Collaborate with delivery teams as needed during implementation.
Collaborate with the validation team as they create a test plan. Support them as needed to triage issues.