Embedded Software Engineer 2
Role details
Job location
Tech stack
Job description
The Embedded Software Engineer 2 will apply computer science and engineering principles to the design, development, integration, testing, and validation of embedded software for task autonomy products. This role supports real-time control systems and product integration efforts within Caterpillar's Cat Technology group, collaborating closely with cross-functional engineering teams to deliver robust and scalable embedded solutions., Design, develop, and implement embedded software for task autonomy and real-time control systems from requirements through deployment. Generate and refine software requirements for task autonomy features. Collaborate with system engineers, machine systems, software, and validation teams to define design approaches and implement solutions. Develop embedded software features using C/C++ in Linux and RTOS environments. Integrate sensors and support perception and positioning system configuration and calibration. Analyze and enhance system efficiency, stability, and scalability. Troubleshoot issues through triage, root cause analysis, and corrective action. Develop test plans and support software validation activities. Participate in design reviews, technical discussions, and project planning activities.
Requirements
Experience: Minimum 4 years of relevant embedded software engineering experience (internships accepted). Education: Bachelor's degree (or equivalent) in Engineering, Computer Science, or a related technical field. Comparable background from other roles: Not specified., 4+ years of embedded C/C++ development experience. 4+ years of embedded system development in Linux and RTOS environments. Strong understanding of sensor integration.
Technical Skills (Required)
Embedded software development, systems design, or product validation experience. Strong knowledge of real-time embedded systems. Experience reading schematics and component datasheets. Understanding of the full software development lifecycle. Strong troubleshooting, analytical, and problem-solving skills. Effective verbal and written communication skills.
Technical Skills (Preferred)
Experience with robotics, autonomy, or remote control systems. Experience with datalinks (CAN, Ethernet) and tools such as CANape or Wireshark. Experience with Git, debuggers, and compilers. Extensive Linux-based software development experience. Experience with ROS. Experience with Qt-based UI development. Knowledge of FMEA processes and electronic system failure modes. Experience developing embedded real-time software for mobile, industrial, agricultural, or off-highway applications.
Soft Skills (Required)
Self-starter with high motivation and the ability to learn quickly. Strong teamwork, communication, analysis, and troubleshooting skills. Experience presenting design concepts, reviews, and technical results.