Lead Robotics Software Engineer and Consultant
~ Location: European Union (EU)
~ Remote Status: Fully Remote
~ Salary Ranges: €37 - €45
Project description:
The project focuses on a robotics application used for inspecting wind turbine blades with drones. The main objectives are:
~Assess and reduce accumulated technical debt in the Python-based codebase
~Introduce best practices to minimize future technical debt
~Refactor existing modules to align with architectural standards and improve maintainability
~Enhance QA and testing procedures for the ROS2 application
~Develop and support CI/CD infrastructure to streamline development and deployment processes
This role emphasizes consulting expertise: beyond programming, you will act as an advisor, providing a final report on technical debt, mentoring the dev team, and ensuring the application’s long-term quality and stability.
Tech stack:
~Python
~ROS (ROS 1 or ROS 2, commercial project experience required)
~GitHub / Azure / On-premise CI/CD pipelines
~Ansible (infrastructure automation)
~Unit & integration testing frameworks
Requirements:
~Strong development skills with proven experience in Python
~Hands-on experience with ROS (ROS 1 or ROS 2) in commercial projects
~Solid understanding of CI/CD pipelines and infrastructure automation (GitHub, Azure, on-premise, Ansible)
~Ability to assess and address technical debt in existing codebases
~Experience in implementing QA best practices, including unit and integration testing
~Strong consulting and mentoring skills (ability to guide a dev team, explain technical debt causes and solutions)
~Excellent communication skills in English
Main responsibilities:
~Assess and report on the current state of technical debt in the Python/ROS codebase
~Prioritize and implement programming tasks in agreement with the client
~Refactor selected modules for improved structure and testability
~Set up and support CI/CD pipelines with automation (GitHub, Azure, on-premise, Ansible)
~Design and implement examples of unit and integration tests
~Define and document high-level QA/testing processes
~Mentor the development team, explaining technical debt sources and strategies to prevent it