Senior Autonomy Engineer - C++

Caterpillar Caterpillar · Industrial · Chennai, Tamil Nadu

Senior Autonomy Engineer role focused on the architectural design of features for Autonomous Drills System (ADS) using C++ on embedded Linux. Responsibilities include technical leadership, design, development, debugging, and mentoring engineers, with a focus on embedded systems, concurrency, and performance.

What you'd actually do

  1. Own and contribute to architecture and detailed design.
  2. Actively design and contribute to feature development, debugging, and defect resolution.
  3. Lead and participate in design reviews, code reviews, and technical decision-making.
  4. Mentor engineers in modern C++, embedded systems, debugging, and profiling.
  5. Remove technical roadblocks, clarify priorities, and work effectively.

Skills

Required

  • C++
  • Embedded Linux
  • Embedded systems
  • Concurrency
  • Performance optimization
  • Design patterns
  • Sensors
  • Positioning technologies (GNSS, IMU, laser, optical)
  • Git
  • CI/CD
  • Software development practices
  • Technical leadership
  • Software architecture
  • Software design
  • Debugging
  • Profiling
  • Agile methodologies
  • Software quality standards
  • Defect management

Nice to have

  • Angular
  • TypeScript
  • Machine control
  • Robotics
  • Guidance systems
  • Industrial safety
  • Field deployment

What the JD emphasized

  • Strong hands-on C++ experience for embedded development
  • Development experience on Embedded Linux
  • Understanding of embedded systems, concurrency, and performance
  • Experience with design reviews, code reviews, and technical documentation
  • Familiarity with sensors and positioning technologies (GNSS, IMU, laser, optical)
  • Strong Git, CI/CD, and modern software practices
  • System-level understanding of Caterpillar machines
  • Experience with machine control, robotics, or guidance systems
  • Knowledge of industrial safety and field deployment
  • Own and contribute to architecture and detailed design
  • Actively design and contribute to feature development, debugging, and defect resolution
  • Lead and participate in design reviews, code reviews, and technical decision-making
  • Mentor engineers in modern C++, embedded systems, debugging, and profiling
  • Remove technical roadblocks, clarify priorities, and work effectively
  • Foster a learning culture and encourage knowledge sharing
  • Ensure strict adherence to the Software Development Framework (SDF)
  • Guide the team through backlog grooming, planning, integration, and defect triage
  • Collaborate with systems, controls, sensors, and hardware teams
  • Work with geographically dispersed teams to drive improvements
  • Communicate effectively with product managers and global leadership
  • Uphold rigorous software quality standards
  • Ensure proper defect management and release discipline
  • Understand safety expectations for machine-impacting software