Full Job Description
We are looking for a senior software developer to help lead the development of real-time control software for energy storage systems. This role involves designing and implementing control algorithms, communication drivers, and system-level software used to monitor and control complex hardware in near real-time environments. The ideal candidate has strong C/C++ experience, a background in automation or control systems, and is comfortable working close to the hardware while also providing technical direction, mentoring others, and helping guide key design decisions from concept through delivery.
What you'll do
• Lead the design, architecture, and implementation of complex real-time control algorithms and behaviors within energy storage systems.
• Provide technical direction and guide the roadmap for development, balancing immediate project needs with long-term technological vision.
• Ensure near real-time performance by optimizing memory management and communication with hardware components, utilizing Linux (near real-time) kernel capabilities and event management.
• Design and develop communication drivers for industrial protocols such as Modbus TCP, and other protocols for data acquisition and control.
• Conduct simulations and modeling to optimize system performance and efficiency.
• Perform system testing, validation, and troubleshooting to ensure reliable operation.
• Develop and maintain technical documentation, including design specifications and user manuals.
• Stay up to date with advancements in control systems and energy storage technologies.
• Excellent communication and interpersonal skills, with the ability to engage and influence both technical and non-technical stakeholders at all levels.
• Evaluate, select, and use appropriate technologies, tools, and frameworks to meet project requirements.
• Deliver key sub-systems or modules (within the EMS), from concept to delivery, ensuring high quality, scalability, and reliability.
• Champion best practices in software development, including TDD and agile methodologies.
• Contribute to the planning, execution, and delivery of software projects, ensuring they are completed on time and to quality standards.
• Support cultivating a culture of accountability, transparency, and continuous learning.
• Take ownership of their work and contribute to the overall success of the organization.
• Mentor and guide other software engineers.
• Drive a customer-centric approach to technology development, prioritizing customer satisfaction and long-term relationships.
• Ensure adherence to all environmental, health, and safety policies.
• Perform other duties as required.
What you'll need to get the job done
• Bachelor's or Master's degree in Engineering, Computer Science, or related field. Advanced degrees or equivalent experience preferred.
• Minimum of 8+ years of experience working with automation, control, and monitoring systems.
• Strong knowledge of close-loop and open-loop controls (millisecond responses) algorithm design and logic.
• Proficiency in C/C++ and real-time operating systems like embedded Linux and RTOS.
• Expertise in industrial communication protocols such as Modbus TCP.
• Familiarity with Root Cause Analysis (RCA) and Corrective Action (CA) methodologies.
• Ability to install, configure, troubleshoot, and maintain electrical and telemetric systems.
• Experience interpreting hardware schematics, electrical/PCB, and mechanical drawings.
• Able to work independently on assigned tasks and escalate to surface roadblocks and risk mitigation.
• Excellent communication skills, with the ability to convey technical concepts to non-technical stakeholders.
• Strong understanding of control systems for utility-scale photovoltaic or battery energy storage systems.
• Experience with control system design, modeling, and simulation tools.
• Knowledge of power electronics, battery management systems, and energy storage technologies.
• Excellent problem-solving skills and attention to detail.
• Passion for innovation and building systems from the ground up.
What will make us REALLY love you
• Experience developing software for battery energy storage systems, utility-scale solar, microgrids, or other distributed energy systems.
• Strong understanding of power electronics, battery management systems, inverters, or grid-connected energy systems.
• Experience with near real-time Linux, embedded Linux, RTOS environments, or low-level performance optimization.
• Experience with industrial communication protocols beyond Modbus TCP, such as CAN, DNP3, IEC 61850, MQTT, or similar.
• Experience with modeling and simulation tools used for controls development, system performance analysis, or energy system optimization.
• Experience building control software or automation systems from the ground up in a fast-moving product development environment.
$90,000 - $120,000 a year
$90,000 - 120,000
This posting is for an active vacancy.