Where can software engineers and architects make the biggest impact in regards to improving sustainability and reducing carbon footprint?
Sort by:
I think that they need to work closely with their peers on the infrastructure side of the house to understand the carbon costs of what they build; poorly architected and written code can consume more CPU, and drive those costs. Understanding your SaaS vendors carbon usage as a selection criteria can also help. But if you really want a deep dive on this topic, I recommend getting involved with this organization: https://www.sustainableit.org/
Architects should look at sustainable technology stacks to build solutions. For example, use serverless architectures that scale to zero when not used, make use of Cloud solutions to leverage economies of scale, participating to technology green and open standard initiatives and advise senior leaders about optimal patterns to reduce carbon footprint whenever possible. Engineers can help with everyday little steps, e.g by avoiding to ask for over-intensive environments (we know there’s a tendency to ask for more just in case), by cleaning up unutilised resources, by influencing technology leaders with new solution trends, etc. Every little helps
Involving architects, and ideally engineers as well, early in the strategy development process is crucial. Typically, business leaders drive the initial sustainability strategy, but for any strategy to be successful, cross-functional collaboration is key. Without input from the technology team, there could be gaps in understanding what needs to be done for the organization to achieve its sustainability goals. The lines between business and technology are blurring, and going forward, there must always be tight collaboration between the two.
1- Algorithmic efficiency:
- Implementing optimal algorithms to reduce computational requirements dramatically
- Carefully selecting appropriate data structures to minimize time and space complexity
2- Clean and accurate code:
- Writing clear, concise, and bug-free code to reduce unnecessary computations
- Regular code reviews and refactoring to eliminate inefficiencies
3- Cloud instance optimization:
- Rightsizing instances to match workload requirements
- Using auto-scaling groups to adjust capacity dynamically
4- Scheduled resource management:
- Automatically stopping or suspending non-critical machines during nights and weekends
- Implementing start/stop schedules aligned with business hours and usage patterns
- Using cloud provider tools or third-party solutions to automate resource scheduling
- Ensuring proper handling of stateful applications when stopping/starting resources
5- Workload scheduling and distribution:
- Batch processing non-urgent tasks during off-peak hours
- Using serverless architectures for sporadic workloads