Who You’ll Be Joining
We are looking for a Software Engineer to join our Device Management Services team. This team is responsible for building and maintaining distributed backend systems that enable large-scale IoT device connectivity, onboarding, authentication, authorization, and persistent communication between devices and cloud-based applications.
In this role, you will contribute to the design and development of highly scalable, fault-tolerant backend services that power real-time device communication and orchestration. You will work across modern distributed systems as well as existing large-scale Java-based monolithic systems.
This is a high-impact engineering role at the core of Generac’s connected device ecosystem. You will be working on systems that directly power millions of IoT devices and enable real-time intelligence, control, and automation across our platforms.
You will have the opportunity to work across modern cloud-native architectures while also influencing the evolution of foundational systems as we scale toward next-generation IoT capabilities.
This role follows a hybrid schedule, with in-office work required on Wednesdays and Thursdays from our Toronto office to support collaboration, and flexibility to work remotely for the remainder of the week. How You’ll Make An Impact
- 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
Required Qualifications
What You’ll Bring to the Table- 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
- 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)Just so you know: Our hired candidate will be required to provide consent to complete a criminal background check
What Happens After You Apply Application review. It will happen. By an actual person in Talent Acquisition. We get upwards of 100+ applications for some roles, it can take a few days, but every applicant can expect a note regarding their application status.
Interview Process
- A 30-minute phone call with a member in Talent Acquisition
- A 30-minute virtual interview with the Hiring Manager
- The final interview will be a 90-minute technical deep dive interview with the team
Generac is committed to fair and equitable compensation practices. The salary range for this role, based in Toronto, Ontario, Canada, is between $91,700 CAD - $119,200 CAD. This compensation will ultimately be in line with the location in which the position is filled. Final compensation for this role will be determined by various factors such as a candidate’s relevant work experience, skills, certifications and geographic location. This role is eligible for variable compensation, including short-term and long-term incentives.
This position includes a comprehensive benefit package that includes 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) and RRSP retirement benefits.
The Company is committed to improving accessibility for Canadian with disabilities and to ensuring that all our employees and applicants have the support and the tools they need to succeed. We have developed policies relating to human rights, accessibility, and accommodation, and provide all our employees with training on accessibility including under provincial legislation such as the Accessibility for Ontarians with Disabilities Act, 2005, either during orientation and/or on an ongoing basis. If you feel you need accommodation in relation to a disability in the application process or in the future, or have a question or concern about our policies, please reach out to askHR@generac.com