Software Engineer, Robotics
With more than $1B in revenue, Tennant Company is a globally recognized leader in the cleaning equipment industry. For the past 150 years, we have been passionate about developing and manufacturing innovative and sustainable solutions for our customers. At Tennant Company, we are committed to stewardship and creating a cleaner, safer and healthier world. With manufacturing, operations and sales, service, and support functions across the globe, your journey at Tennant can take you places you never expected.
Tennant Company is developing advanced robotic and connected cleaning platforms that operate in complex, real‑world environments. We’re looking for an Experienced Software Engineer who enjoys working close to the hardware, thrives in cross‑disciplinary teams, and wants to see their code running on physical machines used every day.
In this role, you’ll develop embedded and connected software systems that power robotic products—from machine controllers to communication interfaces—working alongside systems, electrical, mechanical, and test engineers. Your work will directly impact product reliability, performance, scalability, and customer experience.
This is an excellent opportunity for a hands‑on engineer who values quality, enjoys debugging complex systems, and wants to grow toward senior or technical‑lead responsibilities.
What You’ll Do
Embedded & Platform Software Development
- 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 low‑level activities such as:
- Board bring‑up 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:
- Controller‑to‑controller communication (CAN, CANOpen)
- Ethernet‑ and USB‑based interfaces
- Support implementation of IoT‑enabled 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 long‑term maintainability.
- Perform debugging, fault isolation, and root‑cause analysis across software and system boundaries.
- Participate in unit‑level and system‑level 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.
Cross‑Functional 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.
What You Bring
Required Qualifications
- BS in Electrical Engineering, Software Engineering, Computer Engineering, or related field.
- 3–5 years of professional software engineering experience, including embedded or systems‑adjacent work.
- Hands‑on 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 system‑level problem solving.
- Proven ability to work effectively on cross‑functional engineering teams.
Preferred Experience
- Background in robotics, autonomous systems, or complex electro‑mechanical products.
- Exposure to IoT or connected systems.
- Experience with Python, C#, or other higher‑level 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.
What Makes You Successful Here
- Hands‑on software engineer with strong fundamentals and curiosity.
- Comfortable working in complex systems that blend hardware and software.
- Quality‑focused, detail‑oriented, and accountable for outcomes.
- Collaborative communicator across engineering disciplines.
- Motivated to grow toward senior or lead software engineering roles.
Why Tennant Robotics?
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.
Equal Opportunity Employer
Tennant Company is an equal opportunity employer. Employment decisions are made on the basis of individual skill, ability, reliability, productivity, and other factors important to performance. We do not discriminate on the basis of race, color, creed, religion, sex, national origin, physical or mental disability, age, veteran status, pregnancy, sexual orientation, genetic information, gender identity, or any other basis protected by state or federal law or local ordinance.
Nearest Major Market: Minneapolis
Job Segment:
Testing, Embedded, Linux, Developer, Equity, Technology, Finance