Is your software designed with keeping sustainability in mind?

You can use the following guide to check various aspects of your backend from a sustainable point of view!

Code Optimization

Exceeds Expectations	Meets Expectations	Below Expectations
Code Optimization	Code appears to be optimized at a high level, and appears to have been thoroughly considered. Data structures and advanced algorithms are utilized well	Code is somewhat optimized, and appears to have been considered during development. Data structures and algorithms are used some for this purpose	Code is not optimized well, and it does not appear code optimization was considered. Outdated and poorly chosen data structures and algorithms are used.

→ Code Optimization Sub Topics

Exceeds Expectations	Meets Expectations	Below Expectations	Metric
Computational Overhead	Computational overhead is at a minimum	Some computational overhead is present, but is considered to be at reasonable levels	High computational overhead is present	Amount of memory (RAM) used during operation
Caching	Effective use of caching related to data storage	Some caching has been used to ensure efficient data storage	Little caching has been used, and data storage is not handled in an efficient manner	Time taken to respond to a request

Resource Management

Exceeds Expectations	Meets Expectations	Below Expectations
Resource Management	Advanced techniques are successfully utilized, such as garbage collection tuning, efficient memory management, and connection pooling s	Basic techniques are successfully utilized, such as basic memory management , and closing of connections	Resource management techniques are poorly utilized, or not used at all, leading to resource waste.

→ Resource Management Sub Topics

Exceeds Expectations	Meets Expectations	Below Expectations	Metrics
Operations	CPU and I/O operations are effectively, and efficiently managed	CPU and I/O operations have been considered, and appear to be efficiently managed in some cases.	Inefficient management of CPU and I/O operations	Percentage of CPU used during operation (eg computing the total number of food that are about to be expired) Time it takes to query data Bandwidth usage
Processing	Asynchronous processing is utilized effectively	Asynchronous processing is somewhat utilize	Asynchronous processing not not appear to be used, or is used incorrectly	Number of requests that can be handled concurrently per second

Energy Efficiency

Exceeds Expectations	Meets Expectations	Below Expectations
Energy Efficiency	Successfully implementing approaches that result in energy being used in an efficient manner throughout the entire program	Successfully implementing approaches that result in energy being used in an efficient manner throughout part of the program	Energy efficiency did not appear to gave been considered, or was implemented incorrectly

→ Energy Efficiency Sub Topics

Exceeds Expectations	Meets Expectations	Below Expectations
Energy Profiling Tools	Effectively uses energy profiling tools to optimize and keep track of energy usage and consumption	Effectively uses energy profiling tools to optimize and keep track of most energy usage and consumption	Does not effectively uses energy profiling tools to optimize and keep track of energy usage and consumption
Updating metrics	Consistently updates energy related metrics, such that the energy usage can be monitored	Consistently updates some energy related metrics, such that the energy usage can be monitored	Does not update energy related metrics

Performance and Scalability

Exceeds Expectations	Meets Expectations	Below Expectations
Code Optimization	Solution scales efficiently without significant increase in energy consumption	Solution scales with a moderate increase in energy consumption	Solution scales poorly with significant increase in energy consumption

→ Performance and Scalability Sub Topics

Exceeds Expectations	Meets Expectations	Below Expectations
Optimize Response Time	Response time consistently < 100ms	Response time consistently between 100ms and 200ms	Response time consistently > 200ms
Improve Caching Efficiency	Cache hit rate > 90%, significantly reducing database load.	Cache hit rate between 70% and 90%, moderately reducing database load.	Cache hit rate < 70%, minimal impact on reducing database load.
Benchmarking	Benchmarking has been effectively used to identify and resolve inefficiencies in the code	Benchmarking has been used some to identify and resolve inefficiencies in the code, or benchmarking has been used, but was not successful in identifying and resolving inefficiencies in the code	Benchmarks do not appear to have been used or considered, or they were used in a primarily incorrect manner

API Service

Handle Requests	Perform Operations	Query Data
Average time taken to respond to a request	Amount of energy consumed per unit of computation	Number of read and write operations per second
Percentage of requests that result in errors	Amount of memory (RAM) used during operation	Data Size
Amount of data transferred relative to the amount of useful information conveyed	Percentage of CPU used during operation	Average time the CPU waits for I/O operations to complete
Number of memory leaks