Sustainable Software
Learn how to define, build and run sustainable software applications.
Latest posts
Sustainable Software Engineering (SSE) and the role and responsibilities of a Sustainable Software Engineer
Sustainable Software Engineering is a new discipline that brings together climatology, software and hardware technology and data center designs. In this post I will clarify these principles, describing the possible role of the Sustainable Software Engineer, with consequent responsibilities and skills necessary to interpret it at the best.
Using ML to monitor coral reef bleaching
Coral Reefs & Bleaching Events Coral reefs form home for an estimated 25% of all marine life incorporating more than four thousand species of fish and over a million other aquatic species that live, breed, and are dependent on coral reef ecosystems during their lifetime [1]. This number is significantly important if we consider that coral reefs form just under 0.1% of the oceans' surface area. In addition, almost half a million people are dependent on coral reef ecosystems as they provide protection for coastal infrastructure and prevention from storms, tsunamis, and floods; they are sources for medici...
Measuring the carbon impact of web browsing
Search, simple click, simple letter typed in the search box have an impact on the environment when browsing Internet. Under Windows, the user spends on average 60% of his time in the browser; all of his actions can be measured and therefore can be optimized to reduce carbon emissions. How can we change our behavior? How to know your personal impact as a user and tomorrow how to better code a website as a developer? To measure the carbon impact of your Internet navigation, a simple solution proposed by TheShiftProject called 1bit can provide a first result. "Carbonalyser": the browser extension which ...
The current state of affairs and a roadmap for effective carbon-accounting tooling in AI
The societal case for carbon accounting of AI systems Digital services consume a lot of energy and it goes without saying that in a world with accelerating climate change, we must be conscious in all parts of life with our carbon footprints. In the case of the software that we write, specifically, the AI systems we build, these considerations become even more important because of the large upfront computational resources that training some large AI models consume, and the subsequent carbon emissions resulting from it. Thus, effective carbon accounting for artificial intelligence systems is critical! ...
The Carbon Monkey
applying chaos engineering to sustainable software to find a sweet spot that allows a differential measurement of the carbon impact of an application
Introducing EcoQoS
EcoQoS is a new Quality of Service (QoS) level introduced to Windows that developers can now opt-in to run their work efficiently, leading to better energy efficiency/increased battery life, reduced fan noise and power/thermal throttling.
Carbon proxies: Measuring the greenness of your application
Learn how to measure how environmentally-friendly your applications are and how to build better software. Greener means better, faster, and cheaper.
How to measure the energy consumption of your apps
The second principle of Sustainable Software Engineering is to build energy efficient applications. The very first step in that direction is to measure the energy cost of your application. This post will answer the question "what is the best way to measure the energy consumption of your apps?".
Remote working: How organizations can achieve their sustainability goals
By massively increasing the Hybrid Work usage (time spent in meetings has more than doubled globally, and over 40 billion more emails were delivered in February of this year compared with last. Source : Microsoft releases findings and considerations from one year of remote work in Work Trend Index - Stories), the health crisis has not only transformed the way we work and interact within teams, but also massively increased the use of devices and IT solutions. So what are the environmental impacts of these evolutions? What are the consequences for a developer or an IT manager in terms of energy consumption? ...
Build a ‘Green’ Browser Extension
Always wanted to build a browser extension but afraid to try? Fear no more, you can build a browser extension that calls an API to give your region's carbon usage.
Tuning Servers for Energy Savings
An overview of the key power and performance features, how to enable them, and touch on collecting traces and running benchmarks to see what’s impacted by these features. The goal of this article is to help you find the right sets of power configurations to be able to meet the demands of your workload while being energy efficient.
Deep Learning to the rescue! Mitigating anthropogenic impact upon killer whales in the Canadian Arctic and Salish Sea
History and Background Marine vessel traffic is having a negative anthropogenic impact on marine environments and marine mammals, such as killer whales and other cetaceans, which experience growing pressures by the increasing and constantly changing diverse anthropogenic ocean use and activities performed in coastal areas. The underwater sound sources caused by boats, naval mid-frequency sonars and air-guns for marine geophysical prospecting, responsible for the noise pollution generated in underwater environments where sound travels five times faster than in air [1], have been associated with marine spe...
How do I start a sustainability community in my organization?
This post will outline some tips and tricks on how to get a sustainability community started in your organization, no matter if it is a company, non-profit organization or an interest group on some technical subject. The focus is on awareness and skill building and how to put it into action.
Role of Performance Engineering in Designing Energy Efficient Applications
What is performance testing ? Performance engineering is a software engineering discipline that deals with the techniques, processes, and metrics to make our applications more performant. It is a technique by which we tune the code that we write by measuring against the nonfunctional requirements, such as performance under a certain amount of concurrent users or sessions. Usually performance testing involves simulating production-level workloads in a testing environment to understand how the application performs. Why do we need to do performance testing ? We live in the cloud era where we are enabled...
Sustainability in Site Reliability Engineering (SRE)
This presentation and transcript were recorded for the USENIX SRECon Americas 2020 conference in December 2020. SRECon is a yearly conference focusing on the discipline of Site Reliability Engineering and acts as a gathering point for engineers who care deeply about site reliability, systems engineering, and working with complex distributed systems at scale. Presentation Transcript Introduction (0:17) Usually, a talk about the environment or climate is filled with dramatic images of polar bears or raging wildfires. There is also a dramatic headline or two thrown in about glaciers melting and oceans rising...
How Can I Calculate CO2eq emissions for my Azure VM?
The second principle of Sustainable Software Engineering is to build energy efficient applications. The very first step in that direction is to measure the energy cost of your application. In this post we will look at two different Azure virtual machines, run software on them and calculate the CO2eq emissions of the software.Â
We need a Yuka for electricity to ease the energy transition
At the end of 2020, in the midst of the COVID crisis, Emmanuel Macron, French President, called for a Yuka-like application to be made available to everyone to measure all product's carbon footprint. Un « score carbone » pour évaluer l’impact environnemental des produits ? J’y suis favorable. Nous pouvons créer ensemble le @YukaApp du carbone ! — Emmanuel Macron (@EmmanuelMacron) December 14, 2020 Every step counts in the energy transition. The parallel made by the French President with the Yuka application is not very surprising as this application has not only revolutionized food purchases but al...
Adopting Azure serverless architectures to help reduce CO2 emissions – Part 2 (Extending to the Edge)
In the previous part of the serverless architecture post for the Contoso Claim processing application, we built two components. In this iteration, we will make the architecture more sustainable by using Edge computing. Edge computing is a paradigm that brings the compute, storage, and intelligence right down to the edge device where the data is created. We will move the compute required for text extraction down to the devices. This approach will help us: Explanation: Azure’s Computer Vision API includes Optical Character Recognition (OCR) capabilities that extract pri...