GMS Application Developer
JOB DESCRIPTION
GMS Application Developer develops design and performs software development for suite of Electric Power Grid Applications. The suite includes Energy Management System (EMS) applications such as Topology Processor, Power Flows, State Estimator, Contingency Analysis, Load Frequency Control, Dispatcher Training Simulator (DTS), ICCP, SCADA, CIM Importer, Interfaces and Dynamic Stability Analysis, Load & IRR Forecasting, PMU, Network Model Management system (NMMS) applications. Adhere to software development life cycle (SDLC) processes that includes performing testing and validation of Grid Applications and User Interface changes to deliver quality software to customers. This position will report to the Supervisor/Manager of Grid & Market Solutions (GMS) Technology Development – Grid team.
JOB DUTIES
- Broadly applies principles, theories and concepts related to the profession. A seasoned, experienced professional with an in-depth/full understanding of area of specialization.
- May provide recommendations regarding issues outside the bounds of defined procedures and practices. Demonstrates good judgment in selecting methods and techniques for obtaining solutions.
- Wide latitude for decisions within assignments, programs, and projects; impact is generally limited to the project or department.
- Acts as a resource to advise and may at times a lead the work of lower level professional and/or support employees. Generally, represents the department on projects and may perform in a project leadership role.
ADDITIONAL JOB DUTIES
Level 2 – Above +
- Good Knowledge on Linear and Non-Linear Optimization techniques and understand grid applications (SCOPF, SCUC etc.) optimization objective functions formulation.
- Analyzes electric power grid operations and congestion management related requirements and designs, develops software solutions in core EMS applications like Power Flows, State Estimator, Contingency Analysis, Load Frequency Control, Load Forecast, Dispatcher Training Simulator (DTS) and in Client developed custom EMS applications to meet the requirements.
- Works closely with Network Modeling team on CIM Model data modeling, designs CIM Importer Schema and performs EMS CIM Importer software development.
- Analyzes, troubleshoots, identifies root cause of Voltage and Transient Stability Analysis (VSAT/TSAT) applications issues, and works with Powertech to develop and deliver software solutions to resolve the issues.
- Designs and implements IRR (Wind/Solar) forecast requirements in Siemens WebSDK based forecast presentation platform.
- Works closely with grid systems vendors, drives requirements and design discussions and ensures that quality software is delivered by vendors.
- Deploys, configures, integrates, and tests software releases from grid systems vendors in development environments and delivers quality software releases to customers. Vendor software includes GE EMS, Siemens Network Model Management System (NMMS), Powertech DSA/VSAT/TSAT, EPG PMU/RTDMS, iTron MetrixIDR.
- Provide timely software solutions to address grid applications critical production issues on 24x7 basis as level 2 support team.
- Works closely with GMS production support teams, Grid Operations & Training teams, Network Modeling team and provides technical support on EMS, DTS and NMMS applications.
- Automates software development processes using Continuous Integration and Continuous Delivery (CI/CD) tools such as Bitbucket, Apache Maven/Jenkins etc.
- Creates and gives presentations for training on GMS grid applications enhancements.
- Represents GMS Technology Development department at interdepartmental meetings.
- Assists in developing tools, processes and procedures that improves grid applications software development and departmental/organizational efficiencies.
Level 3 - Above +
- Designs and develops integration and data flows between EMS applications and downstream systems such as VSAT/TSAT, Market Management System (MMS), market reports, settlements, Itron Load Forecasting, IRR forecast interfaces and control room situational awareness applications.
- Analyze, troubleshoot, identify root cause of all grid applications, database, and system issues, and develop software solutions.
- Maintains and supports grid systems in development environments.
- Designs and develops grid applications optimization solvers CPLEX/AMPL models to incorporate various constraints in optimization problem.
- Works with vendors on grid applications and its interfaces improvements and proposes design changes.
- Performs code reviews and approve code changes developed by other developers.
- Automates grid applications and user interfaces unit and regression testing as much as possible by developing scripts and using third party automation tools such as Selenium.
- Provides advice and guidance to Client Grid and market Operations regarding GMS grid applications, processes, and tools.
- Work closely with project management team and ensures successful delivery of gird applications enhancements and technology upgrade related projects.
- Ensures that GMS grid products and solutions comply with the organization’s architectural standards. Employs in the full systems development life cycle in projects and work processes.
- May provide on-the-job training or oversee the work of other developers.
- Works with Market Participants, Client representatives, and vendors to drive and deliver solutions to meet the Client Electricity Market needs.
- Represents Client at market participant meetings.
Level Senior - Above +
- Organizes and coordinates the planning, design and architecture phases of GMS grid applications software development and the integration of applications across the business.
- Develops enterprise level application and custom integration solutions.
- Guides and advocates business and customer requirements for GMS grid applications and user interfaces.
- Conducts all phases of product software development lifecycle, including the analysis, design, test, and integration of products.
- Creates and gives presentations for product solutions and training on GMS grid applications.
- Gives advice and recommendations to management for the overall technical development goals of the GMS Technology Development team.
- Works closely with project management team, assists in developing project delivery plan for various phases of the grid applications related projects and ensures successful delivery of the projects.
- Advises and guides several key groups in the company to ensure quality product delivery.
- Serves as a Subject Matter Expert providing guidance to lower-level workers. May schedule work, train, mentor, and/or coach other employees.
- Conveys team goals effectively through strong written and verbal communication skills.
- Works on moderately complex issues where analysis of situations requires an in-depth evaluation of variable factors. Has the ability to resolve issues in creative and effective ways.
Level Lead - Above +
- Assists in the most difficult technical support problems of grid applications.
- Develops and executes enterprise architecture strategy that GMS Technology development team initiatives.
- Develops programming and development standards and procedures as well as programming architectures for code reuse.
- Provides expert level advice and guidance to grid operations and support teams regarding grid applications, processes, and tools.
- Works with Market Participants, Client representatives, and vendors to drive and deliver solutions.
- Recommends new technology directions or options to grid applications software vendors. Communicates technology design and any related issues to technical and non-technical audiences including customers and technical partners.
- Responsible for mentoring senior developers on best practices in software development, object-oriented design, design patterns and application frameworks.
- Applies creativity, in-depth technical and theoretical knowledge, and experience in solving highly complex grid systems and interfaces architectural design problems.
- Understands and maintains knowledge of Client Nodal Protocols, PUCT rulings, NERC Reliability Standards, CIP protocols and help the staff understand standards and protocols.
- Researches and maintains knowledge of new emerging technologies, best practices in electric utility industry as well as new technology in IT industry and provide the direction to team to adopt new technologies as required.
All Levels -- Preferred Work Experience
- Experience with one of the vendors (Hitachi Energy/ABB, GE, Siemens, Resource Innovations/Nexant, OSI Inc) Energy or Market Management Systems and applications preferred.
- Power industry experience in grid and market arena preferably with software vendors or ISO/utilities.
- Experience with programming languages such as FORTRAN, C, C++, Java, Perl and Python.
- Experience with Oracle PL/SQL
- Experience with Commercial Optimization Solvers: CPLEX/AMPL, Gurobi
- Experience with CIM/XML model-based tools.
- Experience with developing integration layers using Messaging Services: Tibco JMS, AMQ
SKILL REQUIREMENTS
- Programming Languages/Packages/Scripting: C, C++, VisualC++, FORTRAN, Java, Perl, Python, PL/SQL, Shell Scripting
- Web Application Servers: JBOSS, Tomcat
- Message Queues: Tibco JMS, AMQ
- Web Based Development – J2EE, Servlets, SOAP, Java Script, HTML/CSS, XML
- Database: Oracle, SQLSERVER
- Source Code Control Tools: Git, GitHub
- Optimization Solvers: CPLEX/AMPL, Gurobi
- Operating System: Windows, Linux, AIX
EXPERIENCE
- Level 1 Engineer - Less than 1 year related work experience in excess of degree requirements.
- Level 2 Engineer - Requires minimum 2 years related work experience in excess of degree requirements
- Level 3 Engineer - Requires minimum 3 years related work experience in excess of degree requirements
- Senior Level Engineer - Requires minimum 5 years related work experience in excess of degree requirements
- Lead Level Engineer - Requires minimum 8 years related work experience in excess of degree requirements
EDUCATION
- Bachelor's Degree : Electrical Engineering, Computer Engineering, Computer Science or related field (Required)
- Master's Degree : Electrical Engineering, Computer Engineering, Computer Science or related field (Preferred)
or a combination of education and experience that provides equivalent knowledge to a major in such fields is required