Senior Software Developer (C++)
Role details
Job location
Tech stack
Job description
This senior software development position plays an integral role in the design, implementation, testing, and maintenance of EPG's real-time analytics platforms. This is a dynamic role with exposure to engineering teams, software architects, QA teams, and electrical utility customers. The individual will be responsible for:
· Software Development & Architecture:
o Design, develop, enhance, and maintain high-performance C++ Windows Server applications for real-time power system monitoring and analytics.
o Implement scalable, reliable, and maintainable software solutions for processing streaming and historical data.
o Participate in software architecture discussions and contribute to technical design decisions.
o Optimize application performance, memory usage, and computational efficiency for real-time environments.
o Develop modular and reusable software components following established coding standards and best practices.
· System Integration & Data Processing:
o Develop interfaces and services for integrating real-time telemetry, PMU streams, operational databases, and external utility systems.
o Support distributed and multi-threaded application environments.
o Troubleshoot and resolve integration and data processing issues across software components.
· Collaboration & Technical Leadership:
o Work closely with power systems engineers, QA teams, and customers to ensure successful implementation of requirements.
o Participate in code reviews and provide mentorship and technical guidance to junior developers.
o Collaborate with stakeholders to clarify requirements, estimate development effort, and prioritize deliverables.
o Communicate technical concepts clearly to both technical and non-technical audiences.
· Software Quality & DevOps:
o Participate in Agile development activities including sprint planning, backlog grooming, and technical reviews.
o Contribute to CI/CD workflows, version control processes, and development best practices.
o Support software release activities, regression testing, and issue remediation.
o Develop and maintain unit tests, integration tests, and debugging tools.
· Documentation & Support:
o Maintain technical documentation including software design specifications, workflows, and troubleshooting guides.
o Support customer deployments, issue investigations, and software maintenance activities as needed.
Requirements
Do you have experience in Software engineering?, Do you have a Bachelor's degree?, * Strong proficiency in modern C++ development (prefer C++20 and up).
- Strong analytical and problem-solving abilities.
- Experience developing multi-threaded and high-performance applications.
- Understanding software architecture, object-oriented design, and design patterns.
- Experience debugging complex software systems in production or near-production environments.
- Ability to write clean, maintainable, and well-documented code.
- Ability to work effectively in cross-functional technical teams.
- Good interpersonal communication and collaboration skills.
- Attention to detail and ability to manage multiple tasks simultaneously.
- Familiarity with Agile software development methodologies.
- Familiarity with CI/CD concepts and automated testing pipelines.
Minimum Requirements:
· Bachelor's degree in computer science, software engineering, computer engineering, or a related technical field.
· 5 years of Professional software development experience with C++.
· Experience developing production-grade software applications.
· Strong understanding of software engineering principles and development of lifecycle processes.
· Onsite position based in Pasadena, California (remote candidates will not be considered for this position).
Nice to Haves:
· Experience with gRPC and Protobuf.
· Experience with C++ POCO Libraries.
· Experience with SQL Server database management.
· Experience with C# and .NET development.
· Experience using Git version control (or similar tool).
· Experience using Azure DevOps for Agile project management (or similar tool).
· Experience with real-time or distributed systems.
· Experience with networking, communication protocols, or streaming data systems.
· Background in power systems, industrial systems, or utility applications.
· Experience supporting customer-facing software solutions.
Benefits & conditions
Pulled from the full job description
- 401(k)
- Health insurance
- 401(k) matching
- Paid time off
- Flexible spending account
- Life insurance
- Profit sharing, Market competitive. EPG is an Equal Opportunity Employer. EPG offers competitive compensation and provides the following benefits to full-time employees: Health Insurance Plans, 401(k) including Profit Sharing Match contribution, Life Insurance, Paid Time Off, Visa Sponsorship, and Performance Bonus., * 401(k)
- 401(k) matching
- Flexible spending account
- Health insurance
- Life insurance
- Paid time off