Apply now »

Senior Software Engineer

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.

Senior Software Engineer

Responsibilites:

  • Develop, maintain, and improve a suite of mission-critical service, diagnostics, and programming applications that have a direct impact on Tennant’s business operations and customer support capabilities.
  • Design and modernize Windows client applications using C#, WPF, and XAML with strong emphasis on usability, reliability, maintainability, security, and performance.
  • Build and enhance cloud-native backend services and APIs using Azure, AWS, or GCP to support software distribution, secure access, diagnostics, telemetry-adjacent workflows, and future network-enabled device experiences.
  • Develop solutions that support both current device-connected workflows (including USB HID and peripherals) and future TCP/IP-based communication models to enable broader browser-based and device-agnostic experiences over time.
  • Work closely with product managers, architects, and cross-functional stakeholders to translate business requirements into well-designed, implemented, tested, and documented solutions.
  • Lead design sessions and code reviews, promote sound design patterns, clean architecture, structured programming fundamentals, and robust engineering practices across the team.
  • Become the technical owner and subject matter expert for assigned applications, high-risk or high-complexity features, and key architecture initiatives.
  • Starting from higher-level business and technical requirements, independently estimate, decompose, prioritize, and deliver work with minimal oversight.
  • Troubleshoot and resolve defects and production issues spanning desktop software, cloud services, connected systems, and databases using a wide range of tools and techniques to identify root cause and implement resilient solutions.
  • Contribute to and help advance CI/CD, DevOps, monitoring, logging, and deployment reliability practices for critical software components.
  • Mentor and support other software developers through design collaboration, code reviews, technical guidance, pairing, and knowledge sharing across local and remote teams.
  • Partner with security, quality, and compliance stakeholders to support secure access patterns, SSO integration, software integrity, and awareness of applicable product safety and cybersecurity expectations for connected equipment.

Education & Experience:

  • Bachelor’s degree in Computer Science, Software Engineering, Computer Engineering, Electrical Engineering, or related field with 5+ years of relevant experience; or Master’s degree with 3+ years of relevant experience.
  • Strong hands-on experience building Windows desktop client applications in .NET using C#, WPF, and XAML.
  • Strong grasp of C#, modern .NET, SQL Server, API development, and software architecture/design fundamentals.
  • Experience working with peripherals or external devices that connect to client applications, including protocols such as HID (Human Interface Device), CDC (Communication Device Class), MSC (Mass Storage Class), CAN (Controller Area Network) etc.
  • Strong background in cloud-native software development using Azure, AWS, or GCP, including compute, storage, service integration, and API-driven architectures.
  • Hands-on experience leading projects and leading local and remote teams to build, enhance, support, and deliver critical software applications.
  • Experience with relational databases and SQL Server development, including query design, performance considerations, and data-driven application behavior.
  • Familiarity with Python for scripting, tooling, automation, data processing, or engineering support workflows.
  • Experience with source control and SDLC tools such as Git, Visual Studio, JIRA, Bitbucket, or GitHub.
  • Ability to apply technical judgment to ambiguous, complex problems and independently drive work items through completion.

Preffered Experience:

  • Experience with asynchronous programming, task-based concurrency, multi-threaded application design, and performance optimization in device-connected or desktop applications.
  • Strong understanding of object-oriented design, SOLID principles, dependency injection / IoC, and common design patterns.
  • Experience with ORMs and data access technologies such as Entity Framework or LINQ.
  • Experience working with XML, JSON, REST APIs, and service-based integrations.
  • Exposure to web application development technologies such as ASP.NET, Blazor, or Web API to support future browser-based or hybrid solution paths.
  • Exposure to CI/CD pipelines, automated deployments, monitoring, alerting, and operational diagnostics for critical applications.
  • Understanding of secure software distribution, single sign-on, role-based access, and modern authentication/authorization approaches.
  • Awareness of product safety regulations, cybersecurity expectations, and software lifecycle obligations relevant to connected products in industrial or equipment-focused environments.
  • Experience supporting on-demand resource delivery from the cloud as well as advanced download workflows for devices or environments with connectivity constraints.

Skills:

  • Ability to write code that is easily maintainable, reliable, well-structured, and aligned with common programming best practices.
  • Ability to combine complex technical information with business conditions into a coherent picture and present it clearly to team members, internal stakeholders, and external partners.
  • Ability to build consensus and influence others through strong leadership, communication, and collaboration skills.
  • Ability to solve difficult technical and team challenges, systematically and methodically across desktop software, cloud systems, connected devices, and databases.
  • Excellent troubleshooting and problem-solving skills, including root cause analysis across applications, systems, and data layers.
  • Strong ownership mindset and willingness to take responsibility for critical software components from design through support.
  • Willingness to continuously improve self, products, and team, and to learn and apply emerging technologies as business needs evolve.

 

Competitive base salary commensurate with experience: $97,500 - $150,000

Posted salary ranges are made in good faith. Tennant Sales and Service 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: Cloud, Developer, Computer Science, Database, SQL, Technology

Apply now »