We are Generac, a leading energy technology company committed to powering a smarter world.
Generac Clean Energy is building next generation residential clean energy systems. Our products are enabling the renewable energy rollout while saving our customers money using intelligent energy management within homes.
Our software and firmware teams enable these systems to provide a seamless battery backup system for our customers, and we’re building smart energy management across the home through integrations with Generac’s other products.
Our approach takes “full stack” to the extreme with tight collaboration between teams on every layer from firmware to web and mobile apps. Our stack includes C, Rust, Java, Go, React, MQTT, Terraform, and a wide range of AWS tech.
We’re looking for a Staff Software Engineer to work on our cloud IoT and data platform.
We solve scalability and consistency problems, design and implement databases and data warehouses, build data pipelines, and create APIs to expose device data and device controls. We also build integrations with other departments and partners.
Location: Reno, NV (Hybrid 2-3 days per week required).
What You’ll Do:
- Gather requirements, network with stakeholders across Generac, and define solutions.
- Interface with product management teams, firmware teams, embedded software teams, mobile/web app teams as needed.
- Document your assumptions and requirements, present your proposals, iterate, achieve buy-in from stakeholders and collaborators, and set correct expectations for your work.
- Design, validate, implement, and test web services and pipelines on AWS using Java, Go, Python.
- Build rigorous, fully automated test suites at all levels of the stack.
- Own your projects from start to finish; be your own project manager.
- Proactively assist and mentor junior engineers.
- Contribute to our culture of pragmatic excellence.
What You’ll Bring:
- Bachelor’s degree or higher in an Engineering, Computer Science field, or equivalent experience.
- 7+ years of software engineering experience.
- Experience with dozens of products or services on at least one major cloud provider.
- 3+ years of experience in Java.
- 3+ years of experience in IaC tools such as Terraform, Cloudformation, CDK.
- Deep, expert experience in at least one of Java, Go, or Python.
- Proven record of excellent end-to-end testing practice. At the end of a project, you sleep well at night knowing that your assumptions are verified, and your solutions are proven.
- Rigorous approach to rollouts and deployments. Your deployments are low stress because you already tested at 10x of current production scale, and you used techniques such as feature flags to roll out with confidence.
- An eagerness to understand how your work fits into a larger, cross-disciplinary system. You want to understand the systems and teams you interface with.
- Excellent written and verbal communication and problem-solving skills.
- A strong drive for learning and mentorship. You seek out feedback and improvement. You proactively mentor and help the Jr engineers around you.
Physical Demands: While performing the duties of this job, the employee is regularly required to talk and hear; and use hands to manipulate objects or controls. The employee is regularly required to stand and walk. On occasion the incumbent may be required to stoop, bend or reach above the shoulders. The employee must occasionally lift up to 25 pounds. Specific conditions of this job are typical of frequent and continuous computer-based work requiring periods of sitting, close vision and ability to adjust focus. Occasional travel.
“We are an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status, or any other characteristic protected by law.”