Skills Used by RSEs


The following is a list of skills that an RSE might possess. The US-RSE Education and Training Group maintains and publishes this list in an effort to provide resources to better define RSE roles and to help direct individuals looking to invest in learning new skills. An RSE typically has experience with a subset of these skills. This list can be used to create a profile or job description, help individual identify topics they wish to learn, and (eventually) provide links to relevant training resources. This list is a work in progress. If you have additions or suggestions for topics or existing training resources, please either create a pull request or contact the US-RSE Training and Education Working Group.

The list was originally developed as part of the 2nd International RSE Leaders Workshop held in 2020. It is based off of the analysis of several job postings as well as crowd sourced.

This list has the following categories:

Software Development

  • Requirements Gathering/Analysis/Formulation
  • Technology Evaluation
  • Packaging/Releasing
  • Programming/Implementation
    • Programming
    • Software Architecture
    • Cross-Platform Development
    • Maintenance
      • Bug Fixing
      • Version Upgrades
  • Use of Version Control Systems (e.g. Git, Mercurial, etc.)
  • Testing
  • Peer Code Review
  • Distributed Systems
    • Cloud Computing
    • Grid Computing
  • Client-Server Architectures/Web Applications
    • Frontend
      • Frameworks
      • User Experience (UX)
      • Testing
    • Backend
    • Web Services (API Development)
  • Desktop Applications
  • Embedded Systems/Software
  • Real-Time Systems Software

User Interface

  • UX Design
  • Graphic Design

Areas of CS

  • Algorithm
    • Development
    • Evaluation
  • Framework Development
  • Formal Languages and Automata Theory
  • Logic
  • Randomness
  • Geometry and Discrete Structures
  • Semantics and Reasoning
  • Agent-based Modeling
  • Artificial Intelligence
    • Machine Learning (Deep Learning, Neural Nets, etc.)
  • Computer Vision
  • Information Retrieval
  • Data Mining
  • High Performance Computing
  • Signal Detection/Processing
  • Cryptography
    • Blockchain
  • Compiler Construction/Design
  • GPU Programming
  • Scientific Computing
  • Computer Networking
  • Operating Systems

Domain-Specific Topics

  • Geographic Information System (GIS)
  • Bioinformatics
  • Industrial Control Systems
  • Simulation

Around Software

  • Project Management
  • Software Aspects
    • Interoperability
    • Quality
    • Performance
    • Reliability
    • Fault Tolerance
    • Safety
    • Usability
  • Operating
    • System Administration
    • Incident Response
    • Continuous Integration/Deployment
    • DevOps
    • Containerization
  • Process Development (Best Practices, Software Quality, etc.)
  • Support
    • End-User Support
    • Contributor Support
    • Maintenance of Support Systems
  • Documentation
    • Developer Documentation
    • End-User Documentation
    • Reports (Stats, Progress Reports, etc.)

Data Management Systems/Information Storage Systems

  • Database Design and Models
    • Relational
    • NoSQL
    • Document Repositories
  • Data Structures
  • Query Languages
  • Database Administration

Data

  • Data Visualization
  • Data Management
  • Data Analysis
  • People Management
  • Technical Leadership
  • Software Advertising
  • Software Feedback Gathering
  • Training
    • Teaching
    • Consulting
    • Mentoring
    • Pair Programming
  • Funding/Grants
    • Communication
    • Reporting
    • Grant Writing
  • Networking/Communication
    • Stakeholders
    • Collaborators
    • Users
    • General Public

Research Output

  • Presentation of Results (e.g. Meetings, Workshops, Conferences, etc.)
  • Scientific Writing

Community

  • Lobbying
  • Open Source Development

Other

  • Domain-Specific Knowledge
    • Domains according to DFG.de (https://www.dfg.de/)
    • Domains according to Nature (https://www.nature.com/srep/browse-subjects)
  • Statistical Methods
  • Use of Analysis Software
  • Other Tasks as Assigned