C++ (Numerics) Software Developer
C++ (Numerics) Software Developer
Department Software Technology Group
Team Kernel and Solvers Development
Employment basis Full-Time, permanent
Location Hammersmith, UK / Hybrid
About Siemens Processing Systems Engineering
Siemens Process Systems Engineering Limited (SPSE) is a software development company delivering leading Advanced Process Modelling software (the gPROMS platform) and related model-based engineering and services to the process industries.
We work with all the major process industry sectors including chemicals and petrochemicals, oil and gas, pharmaceutical, life sciences, food, power and many more. Not sure what a process industry is? It is an industry that is concerned with the processing of bulk resources or materials and turning them into other products. Think about how your toothpaste or pain relief medication is made. It also involves managing resources like power, wastewater and carbon capture.
Our customers comprise many of the largest companies in the world. Some of them you will have heard of, others you may have heard of or used their brands.
SPSE’s software products and services help our customers improve their processes and product designs, enhance their operations, and be more efficient and effective during the R&D phase. For example, our software is being used in the design and development of Fuel Cell technology, the next big thing in electric vehicles.
We are now looking for a highly motivated C++ Software Developer, with particular focus on advanced numerical and symbolic computation applied to the solution and optimization of large systems of nonlinear equations. You will be part of an international, friendly and supportive development team, designing and implementing new functionality and influencing the future architecture of a state-of-art mathematical modelling environment.
The majority of development work in SPSE takes place within the Software Technology Group. As a member of the Software Technology Group’s Kernel-and-Solvers team, your duties and responsibilities will include:
- Implementing and extending advanced numerical methods for large-scale system simulation and optimization for both conventional and High-Performance Computing hardware platforms.
- In collaboration with SPSE’s senior Software Architects, devising and implementing novel solution algorithms.
- Ensuring software quality and maintainability via appropriate design and testing methodologies.
- Understanding user requirements, both from internal SPSE groups and external users; where applicable, translating these to development projects.
- Resolving critical bug fixes quickly.
- Providing technical support to internal and external customers.
- Collaborating closely with other gPROMS developers, the Quality Assurance team and our Consultant Engineers to achieve the above objectives.
What qualifications and experience you should have
- Proven expertise in at least one of the following areas:
- Linear/nonlinear algebraic systems
- Ordinary and/or partial differential/algebraic systems
- Solution of nonlinear programming/mixed integer optimization problems
- Distributed computation, e.g. using MPI
- Data-driven modelling and/or machine learning
- Good knowledge of algorithms relevant to at least two of the above topics
- Experience of C++ programming
- Demonstrable object-oriented software design skills
- Higher degree in a numerate subject (e.g. Physics or Applied Mathematics) or Computer Science
- Experience in developing multi-threaded applications
- Use of unit testing (e.g. GoogleTest) and integration testing
- Use of modern version control systems (especially Git)
- Cross-platform software development (MS Windows and Linux)
- Knowledge of Python scripting language
- Experience with data formats such as XML, JSON and HDF5
What skills and attributes we are looking for
- Ability to understand complex technical concepts
- A desire to learn and strong problem-solving skills
- Ability to work independently and as a team member
- Ability to communicate well in oral and written communication
What we offer you
We operate an open, diverse and flexible culture, providing independence, opportunity to innovate, early responsibility and open and respected leadership. We have a great working environment that is friendly and supportive, with a real focus on training and development.
As a SPSE employee, you will benefit from:
- Competitive salary
- Company pension
- Private medical insurance
- Health and Dental Cash Plans
- Group life assurance
- 25 days of holiday per year, plus 8 days of statutory Bank Holidays
- Holiday incremental over time
- Flexible working hours
- Cycle to Work scheme
- Comprehensive internal and external training programs
- Excellent career development
- Voluntary Benefit: Discounted Gym Membership
- Internal coaching sessions with a Professional Coach
- Flex Allowance and Wellness Voucher Scheme
- I-save discount platform
- Great office environment, with free fruit, coffee and biscuits, and regular social events
- Reimbursement of subscriptions to professional bodies and cost of professional books
If you wish to apply, please click on the button 'Apply here'
If you wish to apply for this role, please click on the button 'Apply here'
- Senior Consultant Engineer for Advanced Process Modelling Work
- Senior UI/UX Designer
- Full Stack Software Developer
- Digital Applications Front End Developer
- Senior Applications Engineer, Energy & Chemicals
- Consultant Engineer
- Consultant, Formulated Products
- Applications Engineer - Bioprocessing
- C++ (Numerics) Software Developer
- Events and Marketing Executive
If you are interested in working for Siemens Process Systems Engineering but can't currently see a suitable role please click here.