Do you want to help shape the future of the world’s energy? Nuclear fusion, the process that powers The Sun, can play a big part in our carbon-free energy future. The Culham Centre for Fusion Energy (CCFE) is part of the UK Atomic Energy Authority and is one of the world’s leading fusion research laboratories. Our scientists and engineers are working with partners around the globe to develop fusion as a new source of clean energy for tomorrow’s power stations.
The UK Atomic Energy Authority (UKAEA) is seeking a Software Developer to support the modernisation of the legacy systems code PROCESS. There is a temporary position (until March 2021) available in the Power Plant Technology Group in the Technology Department at the Culham Centre for Fusion Energy.
The PROCESS systems code contains a multitude of simplified models that allow the user to determine an optimised fusion power plant design that fulfils the appropriate physics laws and engineering constraints. It is the leading European systems code for fusion applications and is heavily used to design the first European fusion power plant under contracts to EUROfusion, which means its results are typically used as input for other more detailed modelling codes. For this work it is also under constant development. Its main advantages are the speed with which results are produced as well as the large variety of different technology options implemented.
PROCESS is written in Fortran (mostly F90, but some older syntax is used) and comes with a suite of utilities written in Python and a context-sensitive GUI written in C++/Qt. It has been maintained by UKAEA for several decades and is currently undergoing a modernisation project to allow better maintainability without disrupting the ongoing code development and work for our contracts. It is version controlled via GitLab. It uses a continuous integration system (Git and Jenkins) and is partially covered by unit and integration tests. The coverage of these is planned to be extended. The jobholder is expected to support the code modernisation project and other software development work in the group.
The main responsibilities of the role will include:
· Modularisation of individual parts of the PROCESS code in line with the overarching design of the PROCESS modernisation
· Updates of the relevant documentation of PROCESS
· Carrying out maintenance tasks on the context-sensitive GUI
· Support the PROCESS team with the implementation of models beyond the European DEMO project.
· Expand the unit test coverage of PROCESS
· Implementing new error diagnostic tools for PROCESS
· Implement automatized workflow tools for the connection with other codes
Essential Aptitudes and Experience
* A degree OR equivalent experience in computer science, physics or a related engineering discipline
* A PhD or equivalent experience
* Experience of using a compiled programming language (ideally Fortran or C++)
* Experience of using an interpreted high-level programming language (ideally Python)
* Familiarity with Linux/Unix-type computer systems
* Familiarity with a version control system (ideally Git)
* Self-motivated and capable of working in a team
* Ability to quickly adjust to new work environments and to integrate in unfamiliar surroundings
* Experience in writing unit tests and working with unit testing frameworks (e.g. googletest/pFUnit)
* Experience in Qt, CMake, continuous Integration systems
Apply through our recruitment partners, Rullion, here: https://www.cv-library.co.uk/job/209890785/Software-Developer