ESS, Principal Software & Data Engineer
Job details
- Level
- Staff / principal
- Experience
- 8+ years
- Education
- Bachelor's degree
- Posted
- Nov 6, 2026
- Last confirmed open
- Nov 6, 2026
- Job function
- Software/Internet/AI › Data & Analytics › Data Engineer
About this role
Principal Software & Data Engineer
Energy Management System (EMS)
Position Overview
The Principal Software & Data Engineer will be a foundational member of the Energy Management Systems (EMS) engineering organization, responsible for designing and building the software and data platform that enables next-generation energy storage and distributed energy resource control systems.
This role will own the architecture and implementation of the EMS software stack, including data ingestion, data storage, application services, APIs, system integrations, observability, and the data infrastructure required to support real-time control, analytics, optimization, and future AI-enabled capabilities.
The Principal Software & Data Engineer will work closely with the Head of EMS Engineering, Chief Architect, Controls Engineers, Network Engineering, DevOps, and broader product and R&D organizations to create a scalable platform capable of supporting battery energy storage, power conversion systems, grid-connected applications, microgrids, and high-availability applications such as data centers.
This is a hands-on senior technical role. The successful candidate will be expected to establish the technical foundation while also directly designing, developing, testing, and deploying production software.
This role reports to the Head of EMS Engineering. As the organization grows, this role may take on increasing technical leadership responsibilities, including mentoring engineers and helping shape the software and data engineering team.
Key Responsibilities
Software Platform Architecture & Development
- Design and develop the core EMS software platform and application services
- Establish the software architecture supporting control applications, system integrations, operator interfaces, analytics, and configuration management, and external APIs
- Develop modular, reusable software components that can be deployed across multiple products, customers, and system configurations
- Define service boudnaries, APIs, event models, and communication patterns across the EMS platform
- Establish software capable of operating reliably across cloud, edge, and on-premise environments
- Support both server-based and industrial/embedded deployment architectures as the EMS platform evolves
Data Ingestion & Integration
- Own the architecture for ingesting real-time and historical data from battery management systems, power conversion systems, meters, protection systems, site controllers, SCADA systems, and third-party devices
- Develop scalable ingestion services capable of processing high-frequency operational and technologies such as Modbus TCP, OPC UA, MQTT, REST APIs, and other relevant interfaces
- Define canonical data models that normalize information across different equipment vendors and device types
- Develop integration frameworks that reduce the effort required to onboard new equipment, devies, and external systems
- Partner with Controls and Network Engineering to ensure reliable and deterministic data movement between field devices and the EMS platform
Data Platform & Storage
- Define and implement the EMS data architecture for real-time, time-series, relational, configuration, event, and historical data
- Select and manage appropriate database and storage tecnologies based on performance, reliability, scalability, and lifecycle requirements
Design data models supporting telemetry, alarms, events, equipment configuration, system state, operational history, and analytics
- Develop data retention, aggregation, archival, and lifecycle strategies
- Ensure data remains traceable and contextualized from the originating physical asset through downstream applications and analytics
- Establish architectures that allow operational data to support future organization, machine learning, digital twin, and AI applications
APIs & System Integration
- Develop secure APIs and interfaces between the EMS platform and internal and external systems
- Support integrations with SCADA, customer energy management systems, market systems, cloud platforms, fleet management systems, and third-party applications
- Establish versioning, compatability, authentication, and API lifecycle standards
- Develop reusable software development kits, interface libraries, and integration patterns where appropriate
- Ensure interfaces remain stable as underlying equipment and software components evolve
Reliability, Performance & Observability
- Design software for mission-critical, continuously operating energy infrastructure
- Establish application health monitoring, logging, metrics, alarms, and diagnostic capabilities
- Partner with DevOps Engineering to create automated build, test, deployment, and release pipelines
- Develop capabilities supporting remote diagnostics, troubleshooting, upgrades, and lifecycle management
- Define application-level redundancy, recovery, data integrity, and fault-handling strategies
- Support performance testing and characterization of the EMS platform under realistic system loads
- Ensure systems can continue operating safely and predictably during network interruptions, equipment failures, and degraded communications
Development & Test Infrastructure
- Help establish EMS development environments, simulation capabilities, hardware-in-the-loop systems, and engineering test benches
- Develop simulators, emulators, test harnesses, and supporting software used to validate EMS functionality
- Create mechanisms for replaying operational data and reproducing field conditions in development and test environments
- Support integration of the EMS software platform with laboratory and full-scale test facilities
- Work with the broader engineering team to automate system and regression testing wherever practical
Technical Leadership
- Serve as the technical authority for software and data engineering within the EMS organization
- Partner with the Chief Architect to translate system architecture into scalable software implementation
- Evaluate and select software frameworks, databases, messaging platforms, development tools, and supporting technologies
- Conduct design and code reviews, mentor engineers, and help establish the technical foundation for a growing software and data engineering organization
- Help define the long-term software and data technology roadmap
- Balance near-term product delivery with development of a reusable, maintainable EMS platform.
- Work effectively with global R&D organizations, external engineering partners, equipment suppliers, and customers
Required Qualifications
- Bachelor's degree in computer science, Software Engineering, Computer Engineering, Electrical Engineering, or a related technical field.
- 8+ years of professional software engineering experience, including designing, developing, and deploying production software systems
- Strong proficiency in modern programming languages, such as Python, Go, Java, C++, C#, or Rust
- Experience designing scalable software architectures, APIs, distributed systems, and data-intensive applications.
- Strong knowledge of SQL, relational databases, time-series data, and ingestion pipelines
- Experience with Linux environments, containerization (e.g. Docker), CI/CD, version control, and software engineering practices
- Demonstrated ability to troubleshoot complex software systems across application, database, operating systems, and network environments
- Ability to work independently and collaboratively in a fast-paced, evolving engineering environment
Preferred Qualifications
- Experience with Energy Management Systems (EMS), Distributed Energy Resource Management Systems (DERMS), SCADA, or other industrial control platforms
- Familiarity with Battery Energy Storage Systems (BESS), renewable energy, microgrids, power conversion systems, or utility scale power systems.
- Knowledge of industrial communication protocols such as Modbus TCP, OPC UA, DNP3, IEC 61850, or MQTT
- Experience with time-series databases, messaging and streaming technologies, and container orchestration platforms (e.g., InfluxDB, Kafka, Kubernetes).
- Experience with cloud and edge computing architectures, high-availability systems, and cybersecurity practices
- Exposure to hardware-in-the-loop testing, digital twins, machine learning, or AI-enabled industrial applications
Shift: Day Shift
Req Benefits: Competitive Compensation Market Leading Benefits Package: Medical, dental, vision, life insurance, 401(k) match, short- and long-term disability, health savings account, PTO, Profit Sharing
Compensation: 130000-180000