Software Engineer - Advanced - C++/Architecture/Framework
Business Unit: Software
Requisition Number: 230248
Primary Location: United States-New Hampshire-Lebanon
Other Locations: United States-Pennsylvania-State College, United States-Texas-Austin
Assignment Category: Full-time regular
Experience Level: Senior level
Education Required Level: Bachelor's Degree
Travel Required: 5%
Siemens is a global technology powerhouse that has stood for engineering excellence, innovation, quality, reliability and internationality for more than 165 years. As a global technology company, Siemens is rigorously leveraging the advantages that this setup provides. To tap business opportunities in both new and established markets, the Company is organized in nine Divisions: Power and Gas, Wind Power and Renewables, Energy Management, Building Technologies, Mobility, Digital Factory, Process Industries and Drives, Healthcare and Financial Services.
Siemens PLM is seeking a Software Engineer (Advanced) to contribute to our Simulation Framework team. The primary focus of this team is the development of high quality software that serves as the underlying framework for other parts of the STAR-CCM+ simulation product such as mesh generation and physics. As a member of this team you will be expected to contribute both to development of new features and to the refinement/extension of existing architecture. The role primarily involves designing, implementing, and documenting high-quality, extensible software in a timely manner.
• Design, implement, and maintain simulation framework to support physics solvers and post-processing capabilities.
• Interact with stakeholders to identify needs and requirements.
• Optimize performance and scalability of the framework.
• Assist other developers in the application of the framework.
• Collaborate closely as part of a large, distributed team of developers, testers, and managers.
• Participate in peer-based code and design reviews.
• Communicate project status during regular meetings.
• Use systems for managing development including Jira, Confluence, Git, and BitBucket.
Required Knowledge/Skills, Education, and Experience
• Master’s Degree or higher in a related field (computer science, applied mathematics, or engineering).
• At least 3 years of professional software development experience in a related field.
• Expertise in C++ and object-oriented software development.
• A sound understanding of algorithmic complexity.
• Familiarity with numerical methods, such as numerical integration, differentiation, and interpolation.
• Experience with distributed parallel algorithms, particularly domain decomposition.
• Experience working on large, distributed teams and navigating large, complex code bases.
• Experience with software development tool-chains (Git, Eclipse, Visual Studio, etc.).
• Ability to communicate complex technical issues clearly and to present data concisely.
• Ability to handle multiple tasks with minimal oversight.
Preferred Knowledge/Skills, Education, and Experience
• Familiarity with computational simulation such as CFD and FEA.
• Knowledge of modern C++ and design patterns.
• Experience with high performance file systems and I/O.
• Proficiency at optimizing and benchmarking code for performance and memory.