Overview
Join our innovative team as a Robotics Software Engineer specializing in secondary development, where you'll drive the evolution of cutting-edge robotic systems. This role offers an exciting opportunity to develop, optimize, and troubleshoot complex software solutions that power autonomous robots and embedded systems. Your expertise will contribute to advancing robotics capabilities through sophisticated software engineering, ensuring seamless integration and high-performance operation across diverse hardware platforms.
Duties
- Design, implement, and maintain secondary software modules for robotic systems, focusing on enhancing functionality and reliability.
- Develop firmware and embedded software using languages such as C, C++, Python, and Objective-C to optimize robot performance.
- Integrate hardware components like FPGA (Field Programmable Gate Arrays), ARM processors, and Raspberry Pi with software solutions.
- Collaborate with cross-functional teams to develop APIs (Application Programming Interfaces) for system communication via REST, TCP/IP, UDP, and other protocols.
- Conduct rigorous debugging, unit testing, and software troubleshooting to ensure high quality and robustness of robotic applications.
- Utilize version control tools such as Git, SVN, and GitHub to manage code repositories efficiently.
- Apply signal processing techniques and machine learning algorithms to improve robot perception and decision-making capabilities.
- Implement software testing automation using Jenkins, Jira, and Confluence to streamline development workflows.
- Develop UI/UX interfaces with HTML, CSS, JavaScript, and C# to facilitate user interaction with robotic systems.
- Monitor network performance using Ethernet, Wi-Fi (Zigbee), WAN/LAN configurations, ensuring secure data transmission with encryption standards.
- Support system deployment on cloud platforms like AWS and manage databases such as MySQL and Microsoft SQL Server for data storage and analysis.
- Participate in Agile Scrum methodologies to plan sprints, review progress, and deliver iterative improvements efficiently.
Experience
- Proven experience in software development for embedded systems or robotics applications using C/C++, Python, or Java.
- Strong knowledge of FPGA design principles and experience with signal processing or machine learning integration is highly desirable.
- Familiarity with operating systems like Linux and Windows; experience with OS kernels is a plus.
- Hands-on experience with hardware soldering, circuit debugging, and firmware updates for embedded devices.
- Demonstrated ability to work with network protocols including TCP/IP, UDP, DHCP, VoIP; experience in network monitoring is advantageous.
- Experience working with IoT devices such as Raspberry Pi or similar microcontrollers in real-world applications.
- Knowledge of UML modeling tools like Enterprise Architect or similar for system design documentation.
- Ability to analyze complex technical problems using analysis skills; strong troubleshooting skills are essential.
- Experience working within Agile frameworks such as Scrum; familiarity with project management tools like Jira or Confluence is preferred.
- Background in application development involving.NET frameworks or Visual Basic is beneficial but not mandatory.
Join us to push the boundaries of robotics technology! We’re committed to fostering a dynamic environment where your skills will directly impact the future of automation while offering opportunities for professional growth in a fast-paced industry dedicated to innovation and excellence.
Pay: From £26,500.00 per year
Work Location: In person