Job Description
We are seeking a skilled C++ Software Engineer with strong experience in high-level application development using C+/17. In this role, you will contribute to the design, implementation, and optimization of software that powers advanced robotics automation systems. You will collaborate closely with cross-functional engineering teams to develop reliable, scalable, and high-performance applications that interact with real-world robotic hardware.
Key Responsibilities
- Design, develop, and maintain high-level C+/17 applications for robotics automation systems.
- Implement software components that interface with hardware drivers, motion-control modules, and automation frameworks.
- Optimize code for performance, reliability, and real-time responsiveness where needed.
- Work closely with robotics, electrical, and mechanical engineering teams to define requirements and system interfaces.
- Develop robust APIs, libraries, and application-level tools that streamline robotic workflows.
- Perform troubleshooting, debugging, and root-cause analysis across the full robotics software stack.
- Contribute to design reviews, code reviews, and continuous integration/continuous deployment pipelines.
- Ensure code quality through unit testing, documentation, and adherence to software development best practices.
Required Qualifications
- Bachelor's degree in Computer Science, Robotics, Electrical Engineering, or a related field (or equivalent experience).
- Strong proficiency in modern C++ (C+/17), STL, templates, and object-oriented programming.
- Experience developing high-level applications or libraries, preferably in robotics, automation, or distributed systems.
- Solid understanding of multi-threaded programming, concurrency, and memory management.
- Familiarity with Linux development environments, build systems (CMake, Make), and version control (Git).
- Strong problem-solving skills and ability to debug complex software systems.
Preferred Qualifications
- Experience with robotics frameworks or middleware (e.g., ROS/ROS2, real-time frameworks).
- Background working with embedded systems or hardware communication protocols (CAN, UART, SPI, Ethernet).
- Experience with simulation tools or real-time control systems.
- Knowledge of Python or scripting languages for automation and tooling.
- Familiarity with Agile development methodologies.