Generac Clean Energy is building next generation residential clean energy systems. Our products enable renewable energy rollout while saving our customers money using intelligent energy management in their homes. Our software and firmware teams enable these systems to provide solar power and seamless battery backup for our customers, and we’re building smart energy management across the home through integrations with Generac’s other products.
We work across multiple layers of the stack and collaborate closely with other teams, taking ownership, initiative, and responsibility to drive projects from idea to execution. Our stack includes Java, Go, MQTT, Terraform, Snowflake, Rust and a wide range of AWS tech.
We’re looking for a Software Engineer to work on our cloud IoT and data platform. We design and implement databases and data pipelines, solve scalability and data consistency problems, and create APIs to expose device data and device controls to higher level apps. We also build backend integrations with other departments and partners. The core of our stack is built on Clickhouse, Flink, SpringBoot, Redis, Kinesis, Snowflake and AWS IoT Core.
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 data pipelines on AWS using Java or Go.
- Build rigorous, fully automated test suites at all levels of the stack.
- Own your projects from start to finish; be your own project manager.
- Contribute to our culture of pragmatic excellence.
- Bachelor’s degree or higher in Engineering or Computer Science, or equivalent experience.
- 5+ 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 (SpringBoot and Flink).- MQTT and Protobuf experience.
- Golang experience nice-to-have.
- 3+ years of experience in IaC tools such as Terraform. - 3+ years experience in Cloud Architecture (AWS, GCP Azure).- 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.
- A rigorous approach to rollouts and deployments. Your deployments are low stress because you already tested at 10x the current production scaled 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 verbal communication and problem-solving skills.
- A strong drive for learning and mentorship. You seek feedback and improvement. You proactively mentor and help the Jr engineers around you.