|Job Ref:||204561409||Employer:||cv-library.co.uk||Job Type:||Contract||Country:||United Kingdom||City:||Abingdon||Address:||Post Code:||OX14||Salary:||£30 - £31.42/hour||Post Date:||10/10/2016 18:31|
Our client, the Culham Centre for Fusion Energy (CCFE), based near Abingdon, Oxfordshire is one of the world's leading fusion research laboratories.|
We are looking for a contract Software Developer to modernise the legacy systems code PROCESS. There is a temporary, but potentially very long-term, position 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 simplistic 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 (nominally F90, but partially older syntax is used) and comes with a suite of utilities written in Python. It has been maintained by UKAEA for several decades and needs to be modernised to allow better maintainability without disruptions to the on-going code development and work for our contracts. It is version controlled via gitlab and branching of the code is on-going practice. Furthermore, the post holder should create a context sensitive GUI to allow easier and more robust handling of the code and its variety of alternative technology models.
The main responsibilities of the role will include:
* Devise a strategy to modularise and modernise the PROCESS code without disruptions to on-going work
* Implement the modularisation of PROCESS to allow for easier maintainability and code development in the future
* Update the relevant documentation of PROCESS
* Design and program a context sensitive GUI
* Support the creation of automatized workflows with more detailed physics and engineering codes in Europe
* Support the PROCESS team with the implementation of models beyond the European DEMO project.
Essential Aptitudes and Experience
* A degree OR equivalent experience in computer science, physics or a related engineering discipline
* Expert knowledge of the Fortran programming language
* Knowledge of the Python programming language
* Experience in refactoring legacy code
* Experience in managing long term coding projects
* Experience in setting up GUIs (context sensitive would be an advantage)
* Familiarity with Linux/Unix-type computer systems
* Familiarity with git
* Self-motivated and capable of working in a team
* Ability to quickly adjust to new work environments and to integrate in unfamiliar surroundings
* Project management qualification/experience with Agile software development or similar
* Willingness and ability to expand knowledge through training