Research Software Engineer
Role details
Job location
Tech stack
Job description
We are seeking a Research Software Engineer to join the IFS System Design team to take responsibility for the Research-to-Operations (R2O) process as it relates to the CAMS configurations of the IFS, alongside more general support and development of the IFS software carried out by the IFS Section. The successful candidate will work closely with teams in the Production Section (responsible for delivering the operational service) and the Atmospheric Composition Section (responsible for the development of the CAMS system) to facilitate the effective testing and transfer of the latest CAMS developments into operational service. Additionally, the successful candidate will work with the IFS Section to provide support and development of the IFS software infrastructure, including workflow management with ecFlow, shell and Python scripting and the Fortran and C++ code used in the forecasting and data assimilation systems running on our HPC facility in Bologna, Italy. About the Section/ Team
The Integrated Forecast Systems Section is responsible for developing, maintaining and testing the forecasting software stack, co-ordinating the handover to the teams responsible for operational deployment, and ensuring the performance portability of the IFS system. The IFS Systems Development team is responsible for the software infrastructure underpinning ECMWF's forecasting models including user interfaces for configuring the model systems, workflow management of the complex suites running the model systems, and the shell/Python scripts which execute individual components of the suites. Your responsibilities
- Reviewing, merging and testing contributions for new releases (cycles) of the IFS operational service before passing to Production Section
- Reviewing and testing mid-cycle updates before passing to Production Section
- Providing technical expertise, guidance and design review to developers
- Support and development of the IFS Software Infrastructure
Requirements
- Collaborative team player who works effectively within cross-functional and multidisciplinary teams
- Strong analytical and problem-solving skills, combined with a proactive and solution-oriented mindset
- Adaptable and responsive to evolving priorities, business requirements, and user needs
- Excellent communication skills, with the ability to engage clearly and confidently with technical teams, remote colleagues, and non-technical stakeholders
- Highly organised, with the ability to manage multiple tasks and meet competing deadlines effectively
Your profile - Experience, Knowledge and Skills
- An advanced university degree (EQ7 level or above) or equivalent experience in a physical, computational or mathematical science, or a related subject
The following would be an advantage. However, you are encouraged to apply even if you don't feel you meet all the criteria.
Highly Desirable
- Experience of pulling research or prototype developments into time-critical production environments
- Experience developing and maintaining weather forecasting systems, or similar complex computational systems
- Demonstrable software development skills on complex codebases, including experience of using processes for software testing and management
- Proficiency in object-oriented coding in Python
- Competence in shell scripting within Unix or Linux environments
Desirable
- Experience of High Performance Computing (HPC) environments
- Experience developing and maintaining interdependent workflows or pipelines of software
- Working productively with scientists and technical specialists
- Experience working with a traditional compiled language (eg. Fortran, C++ etc)
- Experience in weather forecasting, atmospheric chemistry or data assimilation
- Experience in defining and enforcing software assurance standards and working practices