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
-