Research Software Engineer

Durham, United Kingdom
£33,797 - £40,322 per annum
Friday, 13 November 2020
End of advertisement period
Friday, 4 December 2020
Contract Type
Fixed Term
Full Time

Institute of Advanced Research Computing

Grade 7: - £33,797 - £40,322 per annum
Fixed Term - Full Time
Contract Duration: 3 years in the first instance
Contracted Hours per Week: 35
Closing Date: 04-Dec-2020, 7:59:00 AM

The Department and role purpose

The Directorate of Advanced Research Computing (ARC) provides a focal point for a broad computational capability that underpins and helps define the nature of research and innovation that can be undertaken with the institution.

ARC’s mission is to deliver a coherent strategy for the computational support of for research: enabling research and innovation to be at the forefront of computational practice; enabling academic leadership through the adoption and evolution of leading technology; fostering associated expertise; and enhancing interdisciplinary collaborations. Leading-edge platforms including High Performance Computing, computational and cutting-edge data analytics methods, and growth and retention of vital capacity in research software engineering and technical R&D are at the core of this endeavour.

As a part of a team of Research Software Engineers you will be working as an integral part of the ARC operation providing a critical role for delivery of this significant, strategic University-wide initiative, requiring a collaborative ‘member of research team’ approach, commensurate with the University’s global research aspirations. Building upon the success of recent funding awards including EPSRC Tier-2, ExCALIBUR, STFC IRIS and DiRAC the post will involve exploiting the capabilities of the University’s  High Performance Computing facilities particularly in data-intensive applications.

The post-holder is expected to develop and draw upon deep technical and appropriate domain knowledge to ensure ARC provides appropriate research software development expertise, through forming strong collegiate research relationships with Academics at all levels across the organisation. The post holder will provide specialist knowledge to colleagues within the research community, consultation and ensure effective knowledge transfer both across the institution and externally and share their current state of practice with the national RSE community. The post holder will be encouraged to develop their own areas of specialism, in line with the overall objectives and activities of ARC, and have the opportunity to provide leadership to others as the team grows.

As a support unit that spans all Faculties across the University, we encourage applications from experienced individuals from a diverse range of backgrounds and domains. ARC encourages flexible working and welcomes applications from candidates wanting to be part time or part of a job share arrangement.

Core responsibilities:

  • Professional practitioner in Research Software Engineering.
  • Implement changes to the design and development of processes, techniques and deliverables for multiple research project streams.
  • Provide specialist expertise and support with complexity of data and information sources, workflow, interpretation and analysis.
  • Contribute to development of operational activities to ensure excellence in the stakeholder experience.
  • Collect and analyse stakeholder feedback to help define needs and requirements and the design and planning of ARC.
  • Internal and external relationship development and partnership working, networking and participation to engage and influence future services and the University reputation.
  • Identify and design activities to meet research objectives and outcomes.
  • Deliver training, teaching and/or development delivery for stakeholders.
  • Maintain an awareness of current policy for University business goals such as widening participation and access, and provision of advice using specialist knowledge.
  • Contribute to and lead business meetings, working groups and sub-committees across the Organisation.
  • Responsible for managing small budgets for consumables and some capital items, keeping records and processing invoices.

Role responsibilities:

  • Provide day-to-day management for the delivery of a high-quality Research Software Engineering to ensure research and knowledge exchange outputs.
  • Collaborate with internal and external academics, industry and technical specialists to support the delivery of research projects, contributing to the generation of external income.
  • Work in collaboration with academic colleagues across the institution and take responsibility for the design, production, set-up, maintenance and integrity of code, technical frameworks, user interfaces, and other technologies/resources within ARC.
  • Provide specialist technical problem-solving advice to inform research activity and project planning, continuous improvement and service development.
  • Provide guidance and advice on compliance issues in specialist areas.
  • Apply maintenance schedules to ensure the smooth, safe and efficient use of technology, facilities and services to teaching, research and learning activities.
  • Supervise service users during workshops, practical and test teaching, learning and research activities.
  • Provide support to ensure the delivery of undergraduate and post graduate teaching and learning activities, and income generation where appropriate.
  • Develop, modify and optimise protocols and methodologies, including code review and issue tracking processes and tools.
  • Contribute to the planning, design and delivery of research outputs, including research papers, project reports, case studies and code documentation manuals, and prepare innovative teaching/research proposals.

Person specification - skills, knowledge, qualifications and experience required


  • Excellent oral and written communication skills and the ability to develop excellent working relationships both internally and externally.
  • Educated to degree level (or equivalent experience) in a computing or related/applied discipline.
  • Masters / PhD in a relevant discipline (or equivalent experience).
  • Proven advanced  IT skills, commensurate with the role.
  • Ability to rapidly assimilate the research context and understanding the computational and data analytics algorithms, requirements and interfaces involved in research programming projects.
  • Demonstrable experience of  managing own time and working on multiple projects
  • Experience of working independently as well as part of a team
  • Professional practitioner with specialist knowledge and expertise used to influence service delivery and activities within the organisation, e.g. from the list below: Whilst no single specialism is essential, candidates must be able to demonstrate experience of HPC and the completion of significant work using a number of these technologies:
    • Shared and distributed memory programming tools) (e.g. OpenMP, MPI, CUDA)
    • CMake and other build and installation management tools
    • High Throughput computing tools such as Apache Spark
    • Machine learning libraries such as Tensorflow or Pytorch
    • Serial and parallel debugging and profiling
    • Parallel numerical algorithms and libraries
    • Cloud computing and virtualization, containerization, Docker
  • Ability to rapidly acquire fluent knowledge of new programming languages, libraries and platforms. Advanced skills in the use of languages for numerically-intensive research and data analysis e.g. Fortran, C++, Python, Perl and R.
  • Knowledge of and commitment to software development best practice including issue tracking, testing, documentation, version control, continuous integration, software re-use and deployment. Knowledge of and experience with object-oriented design, design patterns and refactoring.
  • Continuing professional development required to maintain professional recognition. Desire to keep up-to-date and learn about new developments in computational research and an understanding of the landscape of research computing and research programming in the UK and internationally.
  • Ability to solve problems and resolve issues, plan solutions and make pragmatic decisions. Experience of analysing, researching and solving complex programming problems.
  • Knowledge and expertise in multiple areas of technical specialism, and the application of advanced skills to create, build, construct, analyse and realise new and innovative resources, equipment and research outputs.
  • Experience of teaching/research project working within an educational, commercial or industrial environment.
  • Demonstrable ability to teach or train others with specific technical skills, and the operation of standard and complex scientific, technical and creative equipment.
  • Build and maintain relationships within the research communities at the University and beyond, actively seeking opportunities for collaboration with researchers, regionally and nationally, on projects and activities of mutual benefits, including grant preparation. (12D/13D)
  • Contribute to the broader community of Practice for Research Software Engineers, acting as a key point of reference to the community within area of specialism. (28A)
  • Rapidly assimilate research context and understand the computational and data analytics algorithms, requirements and interfaces involved in a research programming project. (33B/50C)
  • Undertake development work to improve efficiency and effectiveness of software on University and other computing platforms
  • Contribute to promotional events and presentations at conferences.
  • Liaise with internal and external agencies, local authorities, industries and visitors where appropriate.
  • Take responsibility for monitoring and updating risk assessments and safety procedures, providing guidance to others where necessary.
  • Provide advice on digital tools and infrastructure to ensure an appropriate approach to developing world class research.

Any other reasonable duties.

Specific role requirements

  • Willingness to work out of the office, to travel nationally and internationally.
  • Willingness to work outside of normal office hours, as appropriate.

Recruiting to this post

In order to be considered for interview, candidates must evidence each of the essential criteria required for the role in the person specification above (including those listed in the section ‘Realising Your Potential Approach’).

In some cases, the recruiting panel may also consider the desirable criteria, so we recommend you evidence all criteria in your application.

Please note that some criteria will only be considered at interview stage.

How to apply

We prefer to receive applications online.

Please note that in submitting your application Durham University will be processing your data. We would ask you to consider the relevant University

Privacy Statement https://www.dur.ac.uk/ig/dp/privacy/pnjobapplicants/which provides information on the collation, storing and use of data.

What you are required to submit

  1. A CV;
  2. A covering letter which details your experience, strengths and potential in the requirements set out above;
  3. The person specification and Realising Your Potential Approach grids. (Please copy and paste the grids from this job description into a separate Microsoft Word document, complete the evidence columns and submit this alongside your other application material.)

Please ensure that you submit all documentation listed above or your application cannot proceed to the next stage.

Next Steps

Shortlisted candidates will be invited to attend for interview on 15 December 2020.

Contact Details

For further information please contact:

Dr Alan Real, Director ARC alan.n.real@durham.ac.uk

Ed Ruck-Keene, Business Development Manager e.a.ruck-keene@durham.ac.uk

Rebecca Appleby, ARC Administrator rebecca.appleby@durham.ac.uk

DBS Requirement: Not Applicable.