Skip to main content

Job id: 074685. Salary: £42,405 - £60,221 per annum, including London Weighting Allowance.

Posted: 14 September 2023. Closing date: 12 October 2023.

Business unit: Faculty of Arts & Humanities. Department: King's Digital Lab.

Contact details: Miguel Vieira. jose.m.vieira@kcl.ac.uk

Location: Strand Campus. Category: Professional & Support Services.

Job description 

King’s Digital Lab (KDL) is a Research Software Engineering (RSE) team within King’s College London Faculty of Arts and Humanities. Our focus is on designing and implementing systems, infrastructure, tools, and processes to produce high-quality digital scholarly outputs. At KDL, we embrace a collaborative and open culture, fostering co-research as new tools and methods emerge.  

We are seeking to appoint either a Research Software Engineer or Senior Research Software Engineer.

The Role  

As a Research Software Engineer, your main responsibility is to develop high-quality code to support product specifications and requirements in collaboration with research leads and the RSE team. You will have expertise in at least one programming language and proficiency in others, along with a keen interest in software development. Your role involves producing research solutions, from algorithms to web applications, and you may have specialised skills in areas such as machine learning, devops, or web development. An interest in devops would be particularly advantageous, as the role will include significant contributions to the Lab’s practices in this area. If you are appointed as a Senior Research Software Engineer, you will have advanced expertise and take a leading role in planning and decision-making related to the research solutions KDL produces.  

You'll have the ability to work independently or as part of large research projects or software engineering teams. A crucial aspect of the role is contributing to e-Research capability within your department, research group, or lab, as well as across the university. Awareness of best practices in software development, digital research methods, and data management is essential.  

In addition to your core design and development responsibilities, you will be encouraged to develop a personal research agenda and explore opportunities for external funding and collaboration with academic colleagues.  

What we offer

King’s College London offers a range of benefits (www.kcl.ac.uk/jobs/kings-benefits), including leave and pension, training and development, support for parents and carers, well-being support, and flexible working opportunities, including hybrid working (typically 20% in-person/80% remote in KDL). With the opportunity to work across multiple disciplines and sectors, you'll have the chance to expand your skills and stay up to date with new and emerging technologies. 

Additional Information  

​KDL promotes an inclusive culture and celebrates diversity. We are committed to encouraging appointments from diverse groups, and welcoming applicants from all backgrounds and abilities, supported by flexible and varied working practices to create an inclusive environment for all.​   

This post will be offered on a full-time, indefinite contract.

Key responsibilities 

  • Lead the design, architecture and development of complex research software systems and applications using appropriate technologies and methodologies.  
  • Provide technical guidance and mentorship to more junior engineers to improve their skills and abilities.  
  • Work closely with research teams to deeply understand project requirements and translate them into robust technical implementations.  
  • Support and advocate for best practices in software engineering like version control, documentation, testing, security and reliability.  
  • Continuously monitor and improve the quality, performance, stability and scalability of research software applications.  
  • Identify areas for innovation and process improvements to increase the efficiency and effectiveness of research software development practices.  
  • Participate in the full software development lifecycle including scoping, planning, development, testing, deployment, maintenance and support.  
  • Proactively learn and adopt new programming languages, frameworks, tools and technologies as appropriate.  
  • Collaborate with stakeholders across different disciplines to ensure research software meets both user needs and technical objectives.  
  • Maintain deep technical expertise and apply it to research challenges to develop creative solutions.  
  • Promote research software sustainability and effectiveness through inclusive and ethical practices.  
  • Contribute to the development of intuitive, user-friendly frontend experiences using modern web frameworks and interface technologies.  
  • Contribute to robust DevOps practices like CI/CD, infrastructure as code, monitoring, and containerization, including working with tools such as Terraform, Ansible, Hashicorp Vault and GitLab.  
  • Contribute to wider research computing communities through open source, publications, conferences etc.  

In addition to the above, a Senior RS Engineer will be expected to:    

  • Guide/mentor other RS Engineers, including taking line management responsibility if required.  
  • Take key roles in planning, architectural decision making, advocating best practices, and providing technical guidance. 

This role aligns with Skills Framework for the Information Age (SFIA) Level of Responsibility 3, or 4 (Senior) and requires proficiency in various SFIA skills. In addition to the core responsibilities, Senior RS Engineers may contribute to different Agile Software Development Lifecycle (SDLC) roles based on their skillset.  

The above list of responsibilities may not be exhaustive, and the post holder will be required to undertake such tasks and responsibilities as may reasonably be expected within the scope and grading of the post.

Skills, knowledge, and experience 

Essential criteria

1.       Expertise with modern web development stacks Python/Django, Node.js, containerisation, cloud platforms.  

2.       Ability to write performant, maintainable, well-tested code following best practices.  

3.       Deep understanding of agile software methodologies and experience leading/participating in sprints.  

4.       Strong analytical and problem-solving skills to handle complex, novel research challenges.  

5.       Excellent communication skills to collaborate with researchers and team members.  

6.       Skills in data modelling for database design for research applications, ensuring flexible, extensible data schemas.  

7.       Motivation for learning and adopting new technologies when appropriate.  

8.       Understanding of accessibility, security, privacy, and other critical concerns for research apps.  

9.       Flexibility to thrive in a fast-paced research environment with changing requirements.  

10.   Experience leading technical decision making and advocating for quality in architecture/code.  

11.   Advanced proficiency, leadership, strategic perspective (Senior Research Software Engineer)  

12.   Ability to guide/mentor others for all criteria above (Senior Research Software Engineer)  

Desirable criteria

1.       Knowledge of Linux systems administration and DevOps practices such as: Docker/Containerisation, CI/CD, infrastructure as code, monitoring, cyber security.  

2.       Experience with accessible and performant front-end development.  

3.       Ability to mentor and guide other engineers in specialty areas.  

4.       Knowledge of machine learning methods and how to responsibly apply in applications.  

5.       Understanding of open-source development processes and contributing to communities.