Principal Software Engineer C++ / Simulink
As a Principal Software Engineer reporting to the Vice President of SoftwareEngineering, you will typically be a lead softwaredeveloper in a cross-functional development group. In this dynamic environment, you will be expected to provide innovative solutions and approaches to large scale software development projects. You provide controls development, simulation and modeling expertise in a wide range of software development activities and occasionally be the sole development resource on a project.
Design, implement and test C/C++ algorithms for commercial and grid scale power storage and control applications in simulated and real-world scenarios.
Design simulated environments that model customers' requirements to sufficient detail to analyze control performance.
Provide expertise with complex control design to optimize implementation.
Provide expertise with simulation development and best practices
Work in a Linux-based environment leveraging third-party and open-source code where appropriate.
Interface with program management, product management and customers to define softwarerequirements.
Interface with SQA group to develop and design verification test methods.
Assist in development of, and adherence to, NEC Energy Solutions product development processes and release standards.
Assist with escalated customer support issues.
B.S. in Electronic/Electrical Engineering, Computer Science or Equivalent (MS would be a plus).
8+ years designing and implementing object-oriented software in C/C++.
5+ years Matlab/Simulink experience modeling algorithms and physical systems.
Experience developing complex model based simulation environments.
Solid controls and signal processing background
Experience developing in a Linux environment.
Excellent verbal and written skills.
Ability to work as a lead member on a development team.
Ability to interface well with internal and external customers
Demonstrated history of delivering quality products to market with understanding and respect for all phases of the product development process, especially requirements and specification development and release control.
NICE TO HAVE:
Electrical engineering or power system experience (fundamentals of power and power transmission systems, knowledge of inverter principles)
Power system simulation and modeling experience.
S-function and MEX function development in C/C++.
Near real-time system development experience.
CAN, Modbus and DNP3 protocols.