TickYouOff
Back
🌱

Green Software Engineering Practices Checklist

Medium 18 items · 1 hour
testuser's avatar
testuser Published 1 month ago

This checklist helps engineering teams reduce software carbon emissions by applying practical optimizations across cloud, CI/CD, databases, and monitoring. It’s for developers, SREs, and engineering managers who want measurable, repeatable steps to improve efficiency and lower environmental impact.

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