
Software Engineer – C++ and Python
We are Siemens
Siemens Digital Industries Software is a leading provider of solutions for the design, simulation, and manufacture of products across many different industries. Formula 1 cars, skyscrapers, ships, space exploration vehicles, and many of the objects we see in our daily lives are being conceived and manufactured using our software.
We are looking for a Software Development Engineer with strong expertise in modern C++, object-oriented design, algorithms, and software architecture to build and evolve scalable application frameworks and reusable software components.
In this role, you will work on the core framework layer, designing robust and reusable components that enable application teams to build high-quality products efficiently. You will solve complex technical problems involving large datasets, performance, memory usage, scalability, reliability, and cross-platform software development.
The ideal candidate is a strong software engineer who enjoys deep technical problem solving, understands how to design reusable frameworks and APIs, and is passionate about writing clean, maintainable, high-performance code.
Key Responsibilities
- Design and develop core frameworks: Design, develop, and evolve scalable application frameworks, reusable libraries, and common software components using modern C++.
- Build robust APIs and architecture: Design well-defined, stable APIs and interfaces, maintain backward compatibility, and apply strong object-oriented design principles, design patterns, and software architecture practices.
- Solve complex performance and scalability challenges: Design efficient algorithms and data structures and optimize performance, memory usage, scalability, and reliability when working with large datasets and demanding applications.
- Collaborate on framework capabilities: Work closely with Product and Application teams to understand requirements and translate them into robust, reusable framework capabilities that address broader product needs.
- Own quality across the development lifecycle: Contribute to requirements, design, implementation, testing, debugging, documentation, and delivery of core framework functionality while maintaining high coding and engineering standards.
- Build automated testing and reliability: Develop and maintain unit, integration, and regression tests to validate framework stability, compatibility, and long-term reliability.
- Drive technical excellence: Investigate and resolve complex technical issues, contribute to Agile practices, promote engineering best practices, and continuously improve the quality and maintainability of the framework.
Qualifications
- Bachelor’s degree in Computer Science, Computer Engineering, Software Engineering, or a related technical discipline.
- 3+ years of professional software development experience, with strong hands-on experience developing core libraries, frameworks, platforms, or reusable software components.
- Strong expertise in modern C++ and Object-Oriented Programming, including practical application of design principles, design patterns, interfaces, abstraction, composition, and reusable software design.
- Strong understanding of algorithms and data structures, with the ability to analyze and solve complex problems involving performance, memory, scalability, and large datasets.
- Proven experience across the software development lifecycle, including requirements analysis, software design, implementation, testing, debugging, documentation, and product delivery.
- Strong analytical, debugging, and problem-solving abilities, with the ability to understand complex codebases, identify root causes, evaluate alternatives, and develop robust solutions.
- Proficiency in Python or a similar scripting language for automation and/or exposing or integrating C++ functionality, along with solid experience using Git and modern version-control practices.
Preferred Skills
- Experience designing and maintaining public or internal APIs, including API versioning and backward compatibility.
- Experience developing cross-platform C++ frameworks or libraries.
- Strong understanding of software architecture and design patterns.
- Experience with performance profiling, memory optimization, and scalability engineering.
- Experience developing automated unit, integration, and regression testing for C++ frameworks.
- Experience with C++/Python interoperability, bindings, or exposing C++ functionality through scripting interfaces.
- Experience working in Agile/Scrum development environments and collaborating with globally distributed engineering teams.
Why Us
At Siemens Software, flexibility is how we work - hybrid by default, built on trust and autonomy. Together, 30,000 people across more than 200 countries build technology that shapes the real world. You'll grow through real projects, strong technical peers, and global mobility, backed by the scale and benefits of an industrial software leader. We're committed to equality and inclusion, and we hire based on merit, skills, and impact. Bring your curiosity and creativity and help us shape tomorrow!
Diversity & Inclusion
We value equal opportunities and welcome applications from people with disabilities. At Siemens, we believe people who've had real experiences dealing with being different will excel as leaders. Let's foster a culture of creativity and innovation. We will ensure that individuals with disabilities are provided reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request accommodation.
Siemens Software. Transform the Everyday
#LI-Hybrid #LI-PLM #DISWSIM
