Maintain develop our tools critical software functions with (1) the addition of new functionality for model composition, initialization, and simulation, and (2) interface and integration among calculation and analysis software.
Follow rigorous software development and verification practices, including automated unit and regression testing.
Help conducting code reviews and analysis.
Assist with training ofnew software developers to the use of the Eclipse Modeling Framework and new software environment.
Work effectively within a geographically dispersed software development team including core technology experts in the Eclipse Modeling Framework located in Europe.
Development and update of other software packages developed in C++/C#.
Experience on model-based software architecture design practices (UML/SysML)
Demonstrated capability to develop software within the Eclipse modeling Framework in Java and integration with C++
Familiarity with data metamodeling (XMI standard)
Experience with full lifecycle software development
Designing, coding and debugging applications in the Java, VBA, C++, C# languages
Experience with software analysis, code analysis, requirements analysis, software review, identification of code metrics, system risk analysis, software reliability analysis
Fluent English (both written and spoken), solid technical writing, presentation, and communication skills.
Ability to work as a part of a multidisciplinary team and in a global environment.
Solid track record of working under pressure and meeting deadlines
Familiarity with Object-oriented Design and Analysis (OOA and OOD)
Experience with front end graphical user interface design
Familiarity with: QVT, Java based GUI building (Eclipse and Java graphical
libraries), DBMS, Python, Matlab and Simulink, RTC, Jenkins, Techniques of software code analysis
Experience with the development of mathematical modeling and simulation software
Experience with cooling, heating energy management systems.
Software testing and quality assurance methods and practices
Performance tuning, improvement, balancing, usability, automation.
Support, maintain and document software functionality
Legacy software reverse engineering, integration with legacy software
Evaluate and identify new technologies for software architecting and implementation
Project Planning and Project Management.
Implement localization or globalization of software.Maintain standards compliance.