Skip to content

RSE job spec & tips for creating sustainable teams

Polly Hudson edited this page Aug 2, 2024 · 2 revisions

EDITORS: CCRP International Software Engineering Group

Software engineering jobspec recommendations

For a “Programmer”, “Software Developer” or “Research Software Engineer” who will be able to contribute to Colouring Cities software development, set up and customise a Colouring Cities site and engage with the research from a technical standpoint.

Essential

  • University affiliation (to maximise research skills and multidisciplnary knowledge sharing, and aid continuity within software engineering teams).

  • Programming knowledge of JavaScript and/or TypeScript.

  • Web development experience, including knowledge of NodeJS, using Express and React or similar libraries for frontend and backend development.

  • Experience using Git and GitHub for version control.

  • Knowledge of setting up and maintaining cloud-based web applications (for example with AWS EC2 or Azure VMs and related services).

  • Commitment to working openly and collaboratively on the project.

  • Positive approach to and interest in a range of types of problem solving.

Desirable

  • Experience developing backend web applications using PostgreSQL, Nginx, NodeJS.

  • Interest in user experience (UX), frontend web and user interface (UI) design.

  • Interest or experience in working with geospatial data and interactive visualisation, particularly web-maps (tools like Mapnik, tileservers, Leaflet.js, MapboxGL.js).

  • Interest in open geospatial data generally (OpenStreetMap, government and public open data initiatives).

  • Ability to break down features into focussed tasks/stories and deliver incrementally.

  • Excellent interpersonal skills, easy to work with, patient.

  • Ability to work in an efficient and focussed way.

  • Interest in identifying ways to facilitate engagement with diverse audiences (including public and private sector organisations, schools, community groups and academics).


Recommendations in relation to appointment of CCRP partner software engineering teams

  • Prioritisation of appointment and retention of research software engineers to maximise continuity, retain knowledge and advance institutional research goals, minimise costs of admin time appointing new engineers and getting them up to speed, and help support technical skills development of researchers and students. This approach also allows as much project funding as possible to be fed directly into academic research;

  • Early collaboration with academics and students involved in computer science within CCRP host institutions, or with their partners/specialist SE research institutions within countries, will allow for as much research software engineering (RSE) continuity as possible. This also allows as much project funding as possible to be fed directly into research;

  • Small-scale internal academic kick start funding for technical demonstration of platforms built by students/research engineers. 2 year f/t SE engineering support then ideally be sought to test and consult on platform and to level larger grants. However 0.5 fte would also likely be sufficient;

  • Take advantage of free one-to-one technical sessions and group sessions coordinated by the Turing and the University of Oxford designed to support demo set-up;

  • Encourage engineers to identify areas of particular interest to them and encourage/help make time for experimentation in these areas, within platforms, alongside other tasks.

  • Develop long-term relationships with individual engineers. Software engineers that have formed an integral part of set-up teams may, even if they move to other posts, continue to be interested in being part of the team as informal advisors to the projects, as and when suits them, and to potentially work on short or longer term collaborations in the future.

  • Developing an ongoing relationship with engineers working on open source platform and open databases for the public good such as OpenStreetMap is also important. (Mateusz Konieczny part of the OpenStreetMap Foundation).


Notes on problems and potential solutions identified at UCL and Turing regarding long-term sustainability of CCRP software engineering teams (2018-2022)

  • High quality research software engineering (RSE) input is fundamental to the success of all CCRP platforms and as such collaborations on Colouring Cities platform set-up, between and across institutions should ideally involve close collaboration with university computer science departments and other related public research bodies;

  • Input of RSE expertise and building stock expertise should be viewed as of equal importance in platform design and management;

  • Continuity and quality of engineering input is essential including for security oversight. R

  • Appointing and sustaining highly skilled, collaborative software engineers has the potential to be time consuming and difficult for PIs. Ongoing changes to RSEs on CCRP teams should be expected. This has the potential to interrupt work flows lose time and knowledge. Differing skills and interests of engineers should also be anticipated in planning.

  • Engineers will want to experiment as part of their involvement and it is important to try to help accommodate research interests where possible to incentivise them to stay. Money does not appear to be a major incentive for engineers interested in open data therefore additional funding is unlikely to solve the problem of SE skills/knowledge gaps/loss;

  • CCRP engineering teams need to employ university RSEs not commercial consultants. CCRP RSEs require academic emails. This allows knowledge to be shared within the university, and across the university network, within a common framework with regard to ethics, research integrity, accreditation etc.

  • RSE interest in open data, multidisciplinary collaboration, and communication, are vital. Not all engineers will be interested in working with specialists from the humanities and the arts or in open knowledge systems. Interest in both as well as curiosity, patience, and flexibility are considered critical for platform success;

  • High quality software engineering is expensive. The scale of funds required to be raised to pay for even small amounts of engineering time means that large amounts of highly experimental work on platforms are often hard to carry out;

  • The CCRP tests a number of methods to maximise sustainability of RSE teams. These include

a) Co-working on core repository code and new features/plugins across countries reduces costs of engineering time and increases benefits for all CCRP partners. The CCRP international technical group runs RSE monthly meetings, chaired by Concordia University (Colouring Canada), to which all engineers and PIs are welcome.

b) Developing academic technical consortia within countries - as part of CCRP national academic networks- . networks at national level, across universities to support this process. CCRP PIs are reliant on excellence and helpfulness of SE teams. Without CCRP SE engineering team collaboration across and within countries,

  • PhD engagement from computer science departments is strongly recommended in platform set-up and improvement, as is long-term consideration of the platform as a teaching tool for masters' and undergraduate engineering programmes (see Colouring Bogota);

In addition to excellence in research software engineering, excellent working relationships between software engineers and non-technical researchers involved in content design are also critical. Platform development and management will involve painstaking incremental adjustment of interface details and subcategories, testing of diverse data capture methods, exploration of new data categories and types, tailoring of categories and interface to maximise accessibility for diverse audiences, as well as foreseeing and addressing data security and ethical concerns. Patience, helpfulness and a real interest in open data and in mutually supportive, cross disciplinary working are therefore key characteristics required by all members of CCRP teams.


Clone this wiki locally