Principal Software Engineer, Robotics
Tennant Company · Golden Valley, MN · 3 wk ago
Engineering$114k–$176k/yrFull-time
About the role
This is a senior technical leadership role for an engineer who thrives at the intersection of embedded systems, machine-level software, and connected architectures. You'll define and drive the software architectures that power complex robotic platforms—from low-level hardware interfaces to secure, connected systems—while mentoring engineers and influencing the technical direction of our robotics portfolio.
Responsibilities
- Own and evolve the software architecture for new and existing autonomous and robotic cleaning machines.
- Establish architectural direction emphasizing scalability, reuse, performance, maintainability, and security.
- Act as a technical authority across embedded and connected domains, including collaboration with external partners on third-party controllers.
- Partner with Product Management, Systems Engineering, and other architects to translate portfolio-level requirements into executable software designs.
- Lead development of embedded platforms using C/C++ on Linux and/or RTOS.
- Provide hands-on technical leadership in:
- Board bring-up, kernel configuration, and device trees
- Driver development and hardware abstraction layers
- Debugging complex hardware/software interfaces
- Ensure clean integration with controls, electrical, and mechanical subsystems.
- Guide communication architectures across controllers using CAN, CANOpen, Ethernet, and USB.
- Define and promote best practices across embedded, communication, and connected software.
- Design systems that meet regulatory and compliance requirements for robotics and connected products.
- Lead program-level quality initiatives including:
- Coding standards
- Architecture and peer reviews
- Advanced debugging, fault isolation, and root cause analysis
- Lead software development through the New Product Development (NPD) lifecycle.
- Balance architectural rigor with execution speed in a fast-moving product environment.
- Provide leadership across:
- Requirements management and traceability
- Source control (Bitbucket)
- Defect and workflow management (Jira)
- CI/CD pipelines and automated builds (Azure DevOps)
- Cross-functional leadership & mentorship:
- Collaborate closely with Hardware, Systems, Test, and Manufacturing teams from concept through qualification.
- Lead and participate in design reviews to ensure alignment with system-level requirements.
- Mentor engineers at all levels, raising the technical bar and fostering strong engineering culture.
- Communicate complex technical concepts effectively to both technical and non-technical stakeholders.
Qualifications
- Bachelor’s degree in Electrical, Software, or Computer Engineering.
- Minimum of 7 years of relevant engineering experience with deep expertise in software architecture, design, and implementation.
- Proven success in senior technical leadership roles influencing architecture and execution across teams.
- Strong embedded systems experience with Linux or RTOS, using C/C++.
- Hands-on experience with requirements management, source control, and defect tracking tools.
- Demonstrated ability to debug complex system-level hardware/software interactions.
Preferred Experience
- Master’s degree in Electrical, Software, or Computer Engineering.
- Background in robotics, control systems, or power electronics.
- Experience driving adoption of improved engineering practices at scale.
- Experience designing and deploying IoT and connected systems, including security and cloud integration (e.g., Azure).
Benefits
A comprehensive benefits package including health insurance, 401(k), disability, life insurance, paid time off, and voluntary benefits!
Pay
Competitive base salary commensurate with experience: $113,600 - 175,700.
Schedule
Not specified.