Senior Research Software Engineer

Advanced Research Computing

Birmingham, United Kingdom

Overview

  • Posted on: 02nd Nov 2021
  • Salary: £42,149 to £50,296, with potential progression once in post to £56,587
  • REF: 57463
  • Closes: 21st November 2021
  • Contract Type: Permanent
  • Hours: Full Time

Job Summary

This post is established at the University of Birmingham, where the postholder will join a strong and dynamic team of Research Software Engineers with a particular focus on supporting researchers.

The Senior Research Software Engineer (RSE) will provide a technical software development and support service to academics from a wide range of disciplines. As a senior member of the Research Software Group, the RSE will help shape Birmingham’s delivery of research software services.

The postholder will collaborate closely with research colleagues from many different academic disciplines and institutions and will provide expert knowledge and skills to develop, improve, maintain and support high quality software solutions and access to services, fulfilling the requirements of research projects. The postholder will contribute to developing the knowledge and skills within the research community at all stages of the research software development cycle, e.g. by providing training and coaching sessions as well as promoting the adoption of best practices.

The postholder will be part of the Advanced Research Computing Team in IT Services, a well-respected and highly performant team with a national and international profile. As the postholder develops in this role, they will be expected to collaboratively work with academic colleagues to secure external funding for future software development projects, to meet the growing demand for support in this area and ensuring sustainability of software created for research.

The Senior Research Software Engineer will have a varied and interesting workload that changes with the requirements that arrive from world-class researchers. The postholder will be joining an existing team of RSEs, and as such is likely to specialise in particular aspects of this job description – depending on their skills, the skills of the rest of the team, and the work available.

Work context

Central IT services at the University of Birmingham use complex, large-scale architectures based on Unix, Linux, Windows and cloud technologies, coupled with advanced storage solutions. These need to be configured and maintained to the highest possible standards of reliability, performance and quality. Business continuity and high service levels are demanded equally for mission-critical research services as well as for those relied on for teaching, learning and administration.

ARC builds and runs (or buys-in) a range of specialist services for researchers, collectively known as BEAR (Birmingham Environment for Academic Research). Aimed at all disciplines, BEAR covers an increasingly broad spectrum of needs, ranging from the traditional HPC through storage and archiving solutions to collaboration and analytics tools and new ‘on premises’ cloud HTC offerings. ARC also supports the exploitation of specialist regional and national services, including HPC Midlands Plus and the new Birmingham-based Baskerville supercomputer. Together with the national supercomputer Archer (Tier 1) and Birmingham’s own BEAR infrastructure, they form a powerful resource for research.

Main Duties

  • Provide a technical software development and support service, available to all members of academic staff and researchers throughout the University.
  • Develop and maintain a programme of work and a system for allocating the finite development resource effectively (in conjunction with the Research Software Group Leader).
  • Prioritise tasks across multiple engagements to meet agreed objectives, ensuring effective communication to project leads.
  • Manage the expectations of researchers and research groups.
  • As appropriate, provide advice, support, coaching, coding services; crucially always with the aim of ownership and responsibility remaining with the research group.
  • Engage with researchers at all development stages and disseminate best practices in the development of sustainable research software.
  • Take responsibility and work collaboratively with research groups from across the University for the definition, documentation, development and satisfactory completion of collaborative software projects: defining requirements; devising solutions; agreeing timescales and priorities as well as identifying the risks to be managed.
  • Each of these engagements will be unique in nature and complexity. They will typically range from requiring a few days to several months of effort.
  • Support researchers to port code to HPC facilities. Advise on improving code to make efficient use of the available resources and produce solid results quickly. This will involve debugging and complex problem solving.
  • Work with researchers to understand workflows and to assist with the porting and optimising of such workflows into BEAR resources.
  • Originate, source and maintain appropriate documentation to support the delivery of software services. Maintain a portfolio and archive of collaborative software projects, code documentation, release notes and manuals.
  • Engage with researchers at all development stages and disseminate best practices in the development and sustainability of research software.
  • Build and maintain relationships with research communities within the University and beyond, seeking opportunities to contribute to research or funding sources for new projects. Work closely with researchers and contribute to research bids to funding bodies. This will mean defining the scope of work and the associated costs for software engineering support for the grant applications as well as the associated IT infrastructure and support costs. Contribute to research papers to be published in academic literature, and produce case studies.
  • Contribute to raising awareness of BEAR and HMP services for researchers and the profile of the team. Help build active user communities locally and regionally, by contributing to seminars and networking events, encouraging the adoption of best practice, sharing knowledge and expertise.
  • Deliver training courses, devising content where applicable or, where qualified, delivering externally validated material, e.g. Software Carpentries. Content will vary from introductory to specialized and advanced levels.
  • Contribute to the support of computational research at the University, within ARC and the wider research software engineering ecosystem. Provide software engineering input to assist the maintenance of the infrastructure and deliver integrated support and services for local and Tier2 research communities.
  • Liaise and engage with external professional networks within the software engineering sector, such as Tier2 and national RSE networks and the Software Sustainability Institute, to keep informed of the latest developments and sector initiatives.
  • Identify opportunities for service improvement, such as efficiency, reliability and performance of parallel codes and third-party applications, and propose and develop innovative solutions to enrich the user experience, to enhance service delivery, and reduce costs or environmental impacts.
  • Maintain an awareness of technical developments, tools and ideas in research computing and in software engineering, including attending seminars, technical briefings, conferences and technical groups.
  • In addition to University provided training and development, you will undertake sufficient personal and professional development as required, ensuring skills and knowledge are up to date so that the role is performed to the required level.
  • Other duties of a similar nature as required by the Director of IT Services.

Person Specification

  • Formal education to degree level or equivalent, preferably in a subject with a strong computer science component.
  • A postgraduate qualification in a C&IT related discipline would be an advantage.
  • Relevant experience in C&IT including a substantial period supporting software and software development environments, ideally in a science environment.
  • Supporting researchers with complex requirements.
  • Broad and deep knowledge of software development and analysis processes, tools and techniques.
  • Broad and deep knowledge of programming and programming languages – including at least one of Python, R, C++ or Fortran.
  • Significant experience of one Linux and associated software applications.
  • Experience with Python data science and AI tools is desirable.
  • Experience with version control in git, with either GitHub or GitLab is desirable.
  • Experience with unit testing and continuous integration is desirable.
  • Experience using High Performance Computing systems is desirable.
  • Experience as a researcher is desirable.
  • Good customer relationship management skills.
  • Proven ability to work as part of a team to deliver services.
  • A self-motivated learner with a track record of continually updating skills – each new project is likely to require learning something new.
  • Excellent organizational/project management skills.
  • Good communication skills, both written and oral.
  • Good broad knowledge of C&IT, including latest technology industry trends.
  • Knowledge of Higher Education, Research and its environment.
  • Familiarity with ITIL would be an advantage.

Informal enquires please contact Ed (Andrew Edmondson) viaa.c.edmondson@bham.ac.uk

Valuing excellence, sustaining investment

We value diversity and inclusion at the University of Birmingham and welcome applications from all sections of the community and are open to discussions around all forms of flexible working.

Employer Achievements:

company award