Skip to content

Software Development & Testing

Code Development

Bug fixes

  • Can reproduce a software defect from a description to confirm the presence of a defect
  • Has an awareness of software testing terminology (e.g, error reporting, test cases)
  • Can apply the specification (expected behavior) to the defect to propose a remediation
  • Can speculate on other functianality that might me affected by the defect and/or remedy

-

Build code sets for scalable and reproducable solutions

  • Understands the basics of scalable solution design
  • Can build code sets for scalable solutions with some oversight
  • Leads the design and implementation of scalable solutions

Common task-general code fixing

  • Is able to apply coding, debugging tools and version control systems to identify and fix code syntax or errors made in code and make it readable
  • Is proficient at debugging errors. Ensures code quality is maintained and is efficient, maintainable and scalable
  • Has an ability to resolve highly complex issues. Guide others through fixing code using best practices.

Dry, Solid patterns and anti-patterns - basic software development

  • Understands software development best practice and can apply principles at class level
  • Can independently identify and reuse patterns already in use in code base
  • Can apply and reognise software software design patterns
  • Can review source code and identfy inconsistent application of best practice
  • Can propose appropriate use of design patterns for solutions

Make RSE Developed Solutions Enterprise-Grade/Production Ready

  • Understands quality of service criteria for business critical services e.g. availability, resiliance, integrity.
  • Can make recommendations regarding QoS in enterprise services, understands QoS priorities and trade offs.
  • Can design enterprise grade solutions that trade off QoS according to organisational priorities, capacity, capability and finances.

Microservices Design Patterns

  • Can independently identify and reuse patterns already in use in the codebase
  • Can review source code and identify inconsistent application of best practices
  • Can propose and implement microservices design patterns and advise when microservices are not the best solution

Scripting languages

  • Basic understanding of scripting languages
  • Can perform basic tasks with scripts
  • Proficient in at least one scripting language
  • Can automate repeatable tasks with scripts
  • Expert in multiple scripting languages
  • Can develop script libraries to achieve complex activities such as automated build and deployment

Write SQL scripts to extract data

  • Write basic SQL queries to extract data
  • Optimize SQL queries for performance
  • Design and implement complex SQL scripts for data extraction

Data Preparation

Building a patient cohort for a set of requirements

  • Familiarity with basic concepts of patient cohort building, including data collection, data privacy, and ethical considerations
  • Ability to independently collect and integrate data from multiple sources, ensuring data quality and consistency
  • understands the application of research data and can anticipate implicit requirements in terms of data points and regulatory considerations

Creating research-ready datasets

  • Can write queries to extract research dataset from a single data source
  • Understands that there are governance issues that may influence what data can be extracted
  • Can write complex queries that generate research datasets from multiple data sources (supervised)
  • Understands governance that applies to datasets they are typically exposed to
  • Can write complex queries that generate research datasets from multiple data sources (indepentent)
  • Is aware of governance frameworks and other constraints that may apply to research data

Work with a quality manager to continusly review the QMS documents

  • Is aware of issues that impact quality
  • Can discuss issues that impact quality and suggest remediations where necessary
  • Can lead reviews/discussions and propose improvments

data model Design/data modelling

  • Can understand structure and features of datasets by viewing pictoral and meta-data descriptions
  • Can apply techniques, approaches, and tools to create conseptual models/representations of datasets
  • Can review and critique data models

Code review & improvement

Clearly commenting on scripts to improve reusability - acceptability of code

  • Appropriate use of commenting in scripts
  • Appropriate use of commenting where domain eccentricities provent full compliance with best practice
  • Has clear, well written, self documenting code with minimal use of inline comments

Reviewing Team members code and suggesing improvements: quality and best practices

  • Can display insight into application of best practice.
  • Can make recomendations to improve single units of code e.g. clear naming, optimising conditional blocks
  • Can identify non-conformance with house style
  • Can identify simple defects in source code e.g. out by one errors in for loops
  • Can confidently assert conformance with best practice
  • Can make recomendations to refactor code inorder to achive better interal code quality e.g. proposing a new class to ensure better adhearance to single responsibility principle
  • Can identify more complex issues such as side effects, concurrency, race conditions
  • Can confidently assert conformance with best practice and make recommendations
  • Can anticipate future problems that may arrise from a given implementaion
  • Can identify complex issues such as known hardware exploits, security issues, hardware performace, resource utilisation

Statistical Disclosure Control Outputs

  • Be able to explain the basic principles of statistical disclosure control and apply it to data
  • Be able to use a wide range of statistical disclosure techniques and tools/software to be able to design and automate control strategies for complex datasets.
  • Evaluate the risk of disclosure for a wide variety of outputs
  • An understanding of more advanced methods that enables the development of more complex use of SDC for larger and sensitive datasets
  • Advises team members on how to apply SDC techniques

Validation

Compare final data files against source data

  • Ability to assist in comparing final data files against source data
  • Basic understanding of data integrity principles
  • Proficiency in independently comparing and validating data files
  • Conduct data integrity assessments
  • Expertise in developing automated processes for data comparison and validation
  • Ensure data integrity across the organization

Data access and management platforms

  • Basic understanding of data access principles and management platforms
  • Ability to assist in configuring data access settings
  • Familiarity with data security and privacy regulations
  • Proficiency in configuring and managing data access platforms
  • Independently manage user access and permissions
  • Implement data security measures
  • Strategic oversight of data access and management strategies
  • Lead the development of data access policies
  • suggested these should come under data mgmt and engineering

Data validation (data ingestion, data egress)

  • Familiarity with data validation techniques
  • Basic understanding of data quality principles
  • Ability to independently validate data
  • Implement data validation procedures
  • Conduct data quality assessments
  • Expertise in developing and implementing comprehensive data validation frameworks
  • Lead data validation initiatives
  • Ensure data quality across the organization

SQL skills - querying and managing data effectively

  • Basic SQL querying skills and understanding of data management principles
  • Familiarity with database management systems
  • Proficiency in writing complex SQL queries and managing large datasets
  • Optimize SQL queries for performance
  • Implement database management best practices
  • Advanced SQL skills for optimizing queries and managing enterprise-level data
  • Lead database management initiatives
  • Ensure data integrity and security

Application Testing

Design and maintain a 'safe user' test

  • Be familiar with basic test scenarios and the tools used to execute them
  • Assists in designing test cases based on requirements
  • Understand the principles of testing and user safety (e.g., GDPR)
  • Detailed understanding of user testing methodologies and frameworks
  • Writes and customises test cases based on requirements
  • Implements standards for monitoring and logging within a test environment so as to monitor system interactions
  • Shows how user testing strategy can be detailed and include more advanced techniques (e.g., automation, predictive modelling)
  • Leads the end-to-end testing for complex systems and coaches others to use best practices for user testing
  • Establish policies and procedures for safe user testing across a programme of activity

QA: software Testing

  • Describe the software development lifecycle
  • Is able to use basic testing tools to execute test plans as defined in a plan and document results
  • Knows and is able to use different types of testing looking at performance, API etc.
  • Understands continuous integration and continous deployment pipelines and impact on quality of the processes
  • Strong understanding of industry standards and governance requirements
  • Optimises test automation strategies for reliability and scability

QA: software testing

  • Be familar with fundamental QA concepts (e.g., user acceptance testing)
  • Understands tools and how to write scripts to automate the testing of multiple workflows?
  • Enables team members to develop and share best practices through meetings, documentation and workshops

Testing of applications

  • Has an awareness of software testing terminology (e.g, error reporting, test cases)
  • Can execute testing plans
  • Has experience testing at different levels of detail e.g. software units, user interfaces
  • Can create testing plans with oversight form senior tester
  • Has experiencing testing across full infrastructure e.g. integration testing
  • Can implement organisationsal testing strategy

Performance Optimisation

Designing output for a checking system

-

-

-

Automation

Developing automation software

  • Can write new or change existing scripts to automate simple tasks
  • Can write new or change existing scripts to automate complex activities
  • Can implement automation of complex business process using automation and workflow platforms

Standard full stack development

  • Basic understanding of full stack development
  • Experience working in at least one area of the web stack
  • Can develop functionality across all layers of software codebase
  • Can produce designs that span multiple layers of the stack (supervised)
  • Can produce designs that span multiple layers of the stack (independent)

Writeup Infrastructure Architecture

-

-

-

Quality Systems

Publishing code and code sets online to improve findability and resuability

  • Is aware of the basic principles behind publishing code openly (how F.A.I.R. applies to code)
  • Can publish code openly following defined workflows, is aware of potential security concerns when working in a secure data environment that may impact whether/how code can be openly published?
  • Can publish code openly into ensuring best practice metadata is included, can review other published code to advise on improvements for findability/reusability.

Database Deployment

SQL database deployment and design: creating and deploying database systems for efficient data management

  • Understands issues relating to good database design including normalisation of tables, flexing, and queries.
  • can write SQL scripts that realise simple logical database designs
  • Can design well normalised database schemas
  • Can write SQL scripts that realise logical database designs
  • Can optimise database designs

Database Design

data flow diagramming

  • Can understand data processing pipelines by studying visual representations
  • Can create visual representations of data flow pipelines

-