Software Engineer, Robotics
Role details
Job location
Tech stack
Job description
-
Design, develop, test, and maintain embedded software in C/C++ running on Linux and/or RTOS platforms.
-
Contribute software for machine controllers and companion processing units.
-
Support key lowlevel activities such as:
-
Board bringup and hardware/software integration
-
Driver configuration or modification (with guidance from senior engineers)
-
Debugging complex software and hardware interface issues
Ensure clean integration with electrical, controls, and mechanical subsystems.
Connected Systems & Communications
-
Develop and support software for distributed and connected systems, including:
-
Controllertocontroller communication (CAN, CANOpen)
-
Ethernet and USBbased interfaces
Support implementation of IoTenabled features such as data exchange, monitoring, and diagnostics.
Apply best practices for secure, reliable, and maintainable communication.
Software Design & Requirements
- Define and refine functional requirements and performance targets for assigned features or subsystems.
- Create and maintain clear software documentation, including interface definitions, diagrams, and design descriptions.
- Participate in software and system design reviews-both giving and receiving constructive feedback.
- Ensure designs align with product, safety, and regulatory requirements.
Quality, Testing & Debugging
- Write software with a strong focus on quality, robustness, and longterm maintainability.
- Perform debugging, fault isolation, and rootcause analysis across software and system boundaries.
- Participate in unitlevel and systemlevel testing to verify software behavior.
- Follow coding standards and actively participate in peer reviews.
Development Process & Tooling
-
Execute development tasks throughout the New Product Development (NPD) lifecycle.
-
Work within Agile or iterative development processes as a contributing team member.
-
Use modern engineering tools for:
-
Version control and configuration management (e.g., Bitbucket or similar)
-
Task and defect tracking (Jira)
-
Requirements management and collaboration (Visure or similar)
Contribute ideas to improve software processes, tooling, and documentation.
CrossFunctional Collaboration
- Work closely with Systems, Electrical, Mechanical, Test, Manufacturing, and external partners.
- Support product launches and address issues found during integration, validation, or early production.
- Clearly communicate technical status, risks, and recommendations within the team.
Requirements
- BS in Electrical Engineering, Software Engineering, Computer Engineering, or related field.
- 3-5 years of professional software engineering experience, including embedded or systemsadjacent work.
- Handson development experience using C/C++.
- Familiarity with Linux and/or RTOS environments.
- Experience using requirements, configuration management, and defect tracking tools.
- Demonstrated strength in debugging and systemlevel problem solving.
- Proven ability to work effectively on crossfunctional engineering teams.
Preferred Experience
- Background in robotics, autonomous systems, or complex electromechanical products.
- Exposure to IoT or connected systems.
- Experience with Python, C#, or other higherlevel languages.
- Familiarity with CAN, CANOpen, or similar communication protocols.
- Experience with unit testing, integration testing, or system verification.
- Strong interest in growing technical scope and responsibility over time., * Handson software engineer with strong fundamentals and curiosity.
- Comfortable working in complex systems that blend hardware and software.
- Qualityfocused, detailoriented, and accountable for outcomes.
- Collaborative communicator across engineering disciplines.
- Motivated to grow toward senior or lead software engineering roles.
Benefits & conditions
At Tennant, your software won't live only in a repository-it will run on autonomous machines deployed in real environments, solving real customer problems at scale. You'll work with experienced engineers, see products through production, and help shape the future of robotic cleaning technology.
Competitive base salary commensurate with experience: $85,200 - 127,600.
Posted salary ranges are made in good faith. Tennant Co. reserves the right to adjust ranges depending on the experience/qualifications of the selected candidate as well as internal and external equity. Total Compensation = Base Salary + Benefits
Benefits = A comprehensive benefits package including health insurance, 401(k), disability, life insurance, paid time off, and voluntary benefits!
Begin your journey with us. Let's reinvent how the world cleans.