Software Engineer, Robotics

Tennant Company
Golden Valley, United States of America
5 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate
Compensation
$ 128K

Job location

Golden Valley, United States of America

Tech stack

Board Bringup
Agile Methodologies
JIRA
Unit Testing
Bug Tracking Systems
C Sharp (Programming Language)
C++
CANopen
Configuration Management
Software Documentation
Communications Protocols
Computer Engineering
Software Debugging
Linux
Electronic Data Interchange (EDI)
Embedded Software
Ethernet
Hardware Interface Design
Iterative and Incremental Development
Python
Real-Time Operating Systems
Software Tools
Requirements Management
Software Engineering
Verification and Validation (Software)
Systems Integration
System-level Testing
Integration Tests
Bitbucket
Software Version Control

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 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.

Requirements

  • 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., * 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.

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.

About the company

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.

Apply for this position