POSITION DESCRIPTION
Position Title: Embedded Systems Engineer
Department: N/A
Technical Team: Embedded Team
Classification: Exempt
Location: Petersboro, Utah
Travel: Less than 10% of the time
REPORTING RELATIONSHIPS
Reporting to: Project Manager
Positions supervised: N/A
JOB SUMMARY
The System Engineer for the autonomous haulage solutions serves as a technical specialist; provides expertise to support the development of new product ideas, concepts and product improvements; ensures the designs are consistent with the organization objectives; and acts as the interface between Product Managers, Solution Architects and Hardware Developers for transforming the defined stakeholder requirements into a set of system/subsystem requirements that will guide the design of the system.
ESSENTIAL DUTIES AND RESPONSIBILITIES
- Develops products by analyzing customer needs and exploring various solutions.
- Resolves intricate issues by assembling cross-functional teams, leveraging their skills, knowledge, and expertise to engineer the necessary solution.
- Constructs the optimal interface through a comprehensive understanding of the interdependencies between subsystems and effectively communicates these concepts to engineer the solution.
- Generates detailed system specifications for subsystem solutions, features, and functions.
- Collaborates with Product Architects, Solution Architects, Software Developers, and Product Manager teams to strategize on standardizing, scaling, and enhancing ASI's products and solutions.
- Evaluates test results for their applicability, validity, and compliance with product requirements.
- Assists teams in defining product requirements and conducting risk assessments.
- Integrates engineering safety standards, methodologies, and global product development processes into all project aspects.
- Concentrates on workflows, optimization methods, and risk management tools for assigned projects.
- Develops estimates for the assigned scope of work and ensures the team adheres to the scope.
- Contributes to the business development process through proposal inputs, meetings, and presentations to potential customers, among other activities.
- Travels, as required, to customer facilities, test facilities, and customer field sites to address issues, explore design alternatives, and provide information to development teams.
SOFTWARE PRACTICES:
-
Write understandable C and C++ code.
- Continuous refactoring.
- Testing first mentality. Unit testing, integration testing, and system simulation.
- Design patterns and SOLID principles adherence.
- Design for re-use.
- Use of distributed version control systems.
ESSENTIAL EDUCATION, WORK EXPERIENCE, JOB SKILLS
- Bachelor's degree in Electrical Engineering, Computer Science, Computer Engineering, or related. Master's preferred.
- Mechatronics solutions, V-Model Architecture and Requirements Generation, Communication Protocols
- 5+ years professional experience designing and implementing embedded, real-time software systems using C/C++ for embedded processors. Senior software engineering experience preferred.
- Familiarity with large multithreaded embedded applications, running on an RTOS.
- Familiarity with electrical and mechanical systems.
- Ability to work in an open and collaborative team environment.
- Strong interpersonal and communication skills.
- Must be authorized to work in the U.S.
DESIRABLE EXPERIENCE/SKILLS:
- Agile software development concepts and processes.
- Device drivers for embedded systems.
- Unmanned vehicle systems.
- Knowledge of flash programming tools.
- Communication protocols: TCP, UDP, Controller Area Network (CAN), SPI, RS232.
- Robotic Operating System (ROS/ROS2).
- Sensor interfacing: GPS, LIDAR, RADAR, ultra-sonics.
- Controls systems.