A Software Engineer at Redwood Materials will design, develop, and integrate software for second-life battery energy storage systems, focusing on system architecture, device management, data handling, and system diagnostics to support renewable energy integration and grid services.
Key Responsibilities
Design, develop, and integrate software for second-life battery-based energy storage systems, focusing on the Site Controller.
Architect and build scalable, resilient system architecture using containerization technologies like Docker and Kubernetes.
Develop control platforms that coordinate hardware assets and integrate with optimization algorithms for energy management.
Collaborate with backend and UI teams to create real-time data management solutions and operational interfaces.
Create SIL and HIL test frameworks for system integration testing.
Work with firmware engineers to ensure seamless integration between the site controller and distributed microcontrollers.
Implement control algorithms in collaboration with modeling and systems engineers.
Troubleshoot and resolve system issues promptly and produce comprehensive software documentation.
Requirements
Bachelor's degree (BS or MS) in Computer Science, Electrical Engineering, or a related field.
At least 2 years of experience developing application software for hardware systems.
Strong proficiency in Python, Rust, or Go programming languages.
Experience profiling and optimizing code running on multi-core targets.
Familiarity with network protocols TCP/IP, CoAP, MQTT, etc.
Experience with time series databases such as InfluxDB or Prometheus and data visualization tools.
Familiarity with IoT and embedded systems.
Experience with Linux system administration and containerization technologies Docker and Kubernetes.
Experience designing and implementing scalable and resilient system architecture for the Site Controller using containerization technologies like Docker and Kubernetes.
Experience architecting control platforms that coordinate multiple hardware assets and integrate with optimization algorithms for energy arbitrage, grid services, and renewable energy integration.
Ability to collaborate with backend and UI engineering teams to design customer and operations interfaces.
Experience creating SIL and HIL test frameworks for integration testing of products.
Experience collaborating with firmware engineers to ensure seamless integration between the site controller and distributed microcontrollers.
Experience working with modeling and systems engineers to implement control algorithms for the site.
Ability to produce excellent software documentation.
Ability to troubleshoot and resolve system issues in a timely manner.
Physical ability to perform essential job functions safely and successfully, including climbing, standing, stooping, or typing.
Ability to work in challenging conditions which may include exposure to noise, dust, chemicals, and temperature extremes, while protected by PPE.
Willingness to work occasional weekends, nights, or be on-call as a regular part of the job.
Willingness to undertake occasional travel as required.