Jobs · Engineering · Minnesota

Senior Software Engineer - New Product Development

Tennant Company · Golden Valley, MN · 1 wk ago
Engineering$98k–$151k/yrFull-time

About the role

We are seeking a Senior Software Engineer to join the Tennant Company (TNC) Robotics Product Development organization. This role combines strong hands-on software development with emerging technical leadership responsibilities, supporting the design, integration, and delivery of embedded and connected software systems for robotic cleaning platforms.

Responsibilities

  • Design, develop, test, and maintain embedded software using C/C++ on Linux and/or Real-Time Operating Systems (RTOS).
  • Own delivery of complex features or subsystems, ensuring performance, reliability, and maintainability.
  • Provide hands-on support for: Board bring-up and hardware/software integration, Driver configuration and targeted development, Debugging hardware/software interface issues, Ensure software integrates cleanly with electrical, controls, and mechanical subsystems.
  • Develop and support software for connected and distributed systems, including: Controller-to-controller communication (CAN, CANOpen), Ethernet and USB-based interfaces, Contribute to the design and implementation of IoT-enabled features, including data exchange, telemetry, and system monitoring.
  • Apply and promote best practices for secure, reliable communication and data handling.

Qualifications

  • Define and refine functional requirements, system behaviors, and performance targets for features and subsystems.
  • Develop clear and structured design artifacts (flowcharts, architecture diagrams, interface specifications).
  • Participate in and help lead design reviews, ensuring alignment with system-level requirements and architectural intent.
  • Lead debugging efforts, performing fault isolation and root cause analysis across system boundaries.
  • Support and guide unit, integration, and system-level testing activities.
  • Promote adherence to coding standards, review practices, and quality metrics.
  • Collaborate closely with Systems, Hardware, Test, Manufacturing, and external partners to resolve system-level challenges.
  • Provide technical guidance and informal mentorship to junior engineers.
  • Help drive alignment across teams on software interfaces, integration strategies, and technical decisions.
  • Clearly communicate technical status, risks, and recommendations to stakeholders.
  • Support product launches and help resolve issues during integration, validation, and early production.

Required Education & Experience

  • Bachelor of Science in Electrical, Software or Computer Engineering.
  • Minimum 6–9 years of professional software engineering experience, including embedded or systems-level development.
  • Strong hands-on experience with C/C++ in Linux and/or RTOS environments.
  • Experience working with requirements management, configuration management, and defect tracking tools.
  • Demonstrated ability to debug hardware/software and system-level issues.
  • Proven experience working effectively on cross-functional engineering teams.

Preferred Experience

  • In robotics, autonomous systems, or complex electro-mechanical products.
  • Exposure to IoT and connected systems architectures.
  • Experience with scripting or higher-level languages such as Python or C#.
  • Familiarity with communication protocols such as CAN / CANOpen.
  • Experience with unit, integration, and system-level testing frameworks.
  • Demonstrated growth into technical leadership or subsystem ownership roles.

Benefits

A comprehensive benefits package including multiple medical plan options, 401(k) with a 100% match up to 6%, paid vacation time, 8 paid company holidays and 3 personal holidays, dental and vision coverage, wellness rewards, robust family support programs, company-paid disability and life insurance, and a full Employee Assistance Program.

Similar jobs