Green Software Engineering Practices Checklist
18 items · Technical · Medium difficulty · 1 hour
Practical steps to cut cloud carbon, optimize resources, and measure software emissions.
-
Set measurable sustainability goals and a carbon budget
Define targets, timeline, and an owner to track progress.
-
Prefer low-carbon cloud regions for deployments
Use provider region metadata or carbon-aware APIs when scheduling.
-
Enable resource and carbon monitoring
Collect CPU, memory, network, energy, and emissions metrics.
-
Rightsize compute instances
Remove overprovisioning and align instance sizes with actual load.
-
Collect 95th-percentile CPU and memory utilization
Use 7–30 day windows to avoid reacting to short spikes.
-
Adjust instance types and autoscaling policies based on telemetry
Apply gradual changes and validate performance after changes.
-
Prefer autoscaling over always-on instances
Use scale-to-zero or dynamic groups to avoid idle capacity.
-
Schedule batch jobs during low-carbon periods
Shift non-urgent workloads to times of lower grid carbon intensity.
-
Prune and optimize CI/CD pipelines
Remove redundant jobs and run tests selectively by change.
-
Enable job caching and incremental builds in CI
Cache dependencies and artifacts to reduce build time and compute.
-
Use CDN and edge caching to reduce origin data transfer
Cache static assets at the edge and set long cache TTLs where safe.
-
Optimize database queries and indexing
Profile queries, add indexes, and avoid inefficient scans.
-
Identify slow and high-frequency queries with profiling tools
Use query plans, traces, and frequency counts to prioritize fixes.
-
Reduce network payloads and enable compression
Use brotli/gzip, trim JSON fields, and lazy-load large assets.
-
Minimize container and artifact sizes
Use slim base images, multi-stage builds, and remove unused libs.
-
Measure Software Carbon Intensity (SCI)
Calculate CO2e per kWh or per request using available tooling.
-
Create dashboards and alerts for carbon or efficiency regressions
Alert on rising energy use or emissions per request to catch regressions.
-
Power down non-production resources when idle
Schedule off-hours for dev/staging and delete orphaned resources.
Printed from TickYouOff — the interactive version tracks your progress and can be shared with others.