Job description:
This position will play a vital role in developing and improving the embedded software we created to control our robots. The successful candidate will be an active part of the software development team working on solutions, raising problems, and co-operating with the other developers and engineers to solve them. You will work closely with hardware engineers, systems designers, and QA teams to ensure that our robots operate with precision, efficiency, and reliability. This role requires a deep understanding of embedded systems, real-time computing, and hardware-software integration.
Key Responsibilities:
* Design and implement embedded software solutions for robotic controllers, sensors, actuators, and peripheral devices.
* Write, test, and debug software in C/C++ or other relevant languages for embedded systems.
* Collaborate with hardware engineers to ensure seamless integration between software and hardware components.
* Develop software to interface with sensors, motors, controllers, and other mechanical components used in robotic systems.
* Optimize code for performance, memory usage, and real-time execution.
* Perform hardware-in-the-loop (HIL) testing to validate embedded software against physical hardware.
* Participate in design reviews and code reviews to maintain high software quality standards.
* Troubleshoot and resolve software-related issues in both development and production environments.
* Maintain thorough documentation of software designs, technical specifications, and test procedures.
* Collaborate with cross-functional teams to support robotic system development from concept to production.
Qualifications:
* Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Robotics, or a related field.
* Minimum 5-year work experience in software product development
* Proficiency in embedded C/C++ programming.
* Experience with embedded Linux.
* Comfortable with Git version control, BASH, or command prompt.
* Familiarity with communication protocols (e.g., UART, I2C, SPI, CAN) and hardware interfaces.
* Hands-on experience with robotic systems, sensors, actuators, or motor control is highly desirable.
* Strong problem-solving skills and ability to troubleshoot hardware-software interactions.
* Excellent teamwork and communication skills.
* proven debugging skills with tools such as gdb and Valgrind
* Familiarity with Agile development methodologies.
* experience with existing computer vision tool-kits such as Open-CV is considered as strong asset.