EnergyHub empowers utilities and their customers to create a clean, distributed energy future. As a Senior Software Engineer on the Battery team, you will design and develop backend services that support residential battery programs and collaborate with leading battery providers to enhance grid flexibility.
Responsibilities:
- Build and maintain integrations with industry-standard energy protocols and specifications, including OpenADR, IEEE 2030.5, and related smart grid/DER communication standards
- Develop and maintain our client-facing REST API and the backend logic that powers it
- Build integrations with distributed internal services to abstract away complexity and enable new product capabilities
- Ensure proper security and data protection policies, procedures, and monitoring are in place
- Collaborate with product and engineering to continuously improve requirements and software quality
- Collaborate with other teams to enable new API features and help them build on top of utility client data
- Update utility-facing Web portal to support new integrations
- Drive and embody the 'Dev Owns Quality' culture
- Write and maintain technical documentation
- Other duties as assigned
Requirements:
- 5+ years of professional software engineering experience
- Experience building against industry energy specifications such as OpenADR, IEEE 2030.5, OCPP, or similar smart grid/DER communication standards
- Experience with the Java/Spring ecosystem
- Expertise in RESTful web APIs, especially those targeting external clients
- Strong software design skills
- Familiarity with relational database fundamentals (we mostly use PostgreSQL)
- Knowledge of modern security best practices, authentication/authorization frameworks, and system/API hardening
- Knowledge of development best practices including automated testing, CI/CD, and monitoring (e.g. GitHub Actions, DataDog, Sentry, Metaplane)
- Ability to work both autonomously and collaboratively as the situation demands
- Experience with AWS or other cloud providers
- Experience with microservice architectures and event-driven messaging systems
- Experience with React and other web technologies
- Experience with protocol buffers and gRPC
- Experience with containerized systems
- Experience with MongoDB