About the Role
We are looking for an experienced C/C++ Software Developer to build and maintain high-performance control software for industrial automation and motion-control systems. The role requires strong hands-on experience with production software, real-time systems, industrial communication, and integration across hardware and software.
This is a technically demanding role for someone who can independently solve complex engineering problems, work effectively with cross-functional teams, and contribute to reliable software used in industrial environments.
Key Responsibilities
- Design, develop, and maintain control systems for industrial automation using EtherCAT.
- Develop and maintain control algorithms and production software.
- Collaborate with hardware and software engineers to ensure reliable system integration.
- Perform system testing, debugging, optimisation, and performance improvement.
- Create and maintain technical documentation including design specifications, test plans, and user documentation.
- Provide technical support and troubleshooting for control systems in production environments.
- Stay current with developments in control engineering, robotics, real-time systems, and industrial automation.
Required Skills & Experience
- Minimum 5 years of direct professional experience with C/C++.
- Experience with Qt.
- Strong understanding of multithreading concepts including semaphores and mutexes.
- Good knowledge of networking concepts.
- At least 5 years of experience developing production motion-control systems for robotics or industrial automation.
- Experience with industrial fieldbuses such as EtherCAT and with PLC-based systems.
- Strong understanding of high-performance networking, control theory, and feedback control systems.
- Experience with Git and professional software-development practices.
- Strong problem-solving, communication, and independent working skills.
Preferred Skills
- Hands-on experience with EtherCAT communication protocols.
- Experience with interdisciplinary hardware, software, and algorithm co-design.
- Exposure to robotics, sensors, real-time systems, embedded systems, distributed systems, simulation, or high-performance scientific computing.
- Experience building and testing real-time systems.
- Experience supporting engineering infrastructure or tool development.
- Experience taking new technology from idea generation through implementation and production.
- Knowledge of functional-safety or IEC standards such as IEC 61131-3.
- Knowledge of machine learning, computer vision, HMI development, system monitoring, or value engineering is an advantage.
Education
B.E. / B.Tech / M.S. / M.Sc. in Computer Science or an equivalent discipline. A master’s degree is preferred.