Intermediate Software Engineer

Generac Power SystemsToronto, ON
$91,700 - $119,200Hybrid

About The Position

ecobee, now a subsidiary of Generac Power Systems, is seeking a Software Engineer to join their Device Management Services team. This team is responsible for building and maintaining distributed backend systems that handle large-scale IoT device connectivity, onboarding, authentication, authorization, and communication between devices and cloud applications. The role involves contributing to the design and development of highly scalable, fault-tolerant backend services that power real-time device communication and orchestration. The engineer will work with modern distributed systems and existing large-scale Java-based monolithic systems, impacting Generac's connected device ecosystem which powers millions of IoT devices. The position offers the opportunity to work with modern cloud-native architectures and influence foundational systems for next-generation IoT capabilities. This role follows a hybrid schedule, requiring in-office work on Wednesdays and Thursdays in the Toronto office, with flexibility for remote work the rest of the week.

Requirements

  • 3-5 years of experience in backend software engineering
  • Strong programming experience in Java, Golang and Python
  • Comfortable reading, debugging, and contributing to Java-based systems and microservice architecture
  • Exposure or willingness to work in Go-based microservices environments
  • Strong understanding of distributed systems and backend service architecture
  • Experience working with cloud platforms (preferably GCP or AWS)
  • Strong understanding of RESTful APIs and microservice architecture
  • Experience with CI/CD pipelines and modern software delivery practices
  • Exposure to Kubernetes and containerized deployments
  • Working knowledge of Linux-based environments and Git version control
  • Strong problem-solving skills and ability to debug complex system issues

Nice To Haves

  • Experience with AWS IoT Core and IoT device connectivity platforms, with a strong emphasis on MQTT-based communication
  • Familiarity with Python for scripting, automation, or tooling
  • Experience working in DevOps-oriented or infrastructure-heavy environments
  • Understanding of device connectivity, telemetry, and real-time messaging systems, with the ability to define, measure, and communicate performance and reliability through SLOs and SLAs.
  • Prior experience working on connected devices or large-scale distributed systems
  • Exposure to multi-cloud environments (GCP + AWS)

Responsibilities

  • Design, develop, and maintain distributed backend services supporting IoT device connectivity at scale
  • Build and enhance systems for device onboarding, authentication, authorization, and lifecycle management
  • Develop APIs and services enabling bi-directional communication between cloud applications and connected devices
  • Work on both modern Go-based services and existing Java-based monolithic systems
  • Collaborate with internal platform teams (e.g., energy, device intelligence, and security services) to support device-driven capabilities
  • Contribute to system reliability, scalability, and performance improvements
  • Participate in debugging, root cause analysis, and resolution of complex distributed system issues
  • Develop and maintain CI/CD pipelines and support deployment processes in a cloud-native environment
  • Ensure operational excellence through monitoring, logging, and incident response practices
  • Collaborate with cross-functional engineering teams to deliver end-to-end solutions

Benefits

  • medical, dental and vision plans
  • life, long-term disability, flexible spending and health savings accounts
  • accrued paid time off
  • paid Holidays (10 for Ontario, 11 for British Columbia)
  • RRSP retirement benefits
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service