Thursday, November 10, 2022

Fight Climate Change as a Software Engineer

 


We need to reduce and eliminate greenhouse gas emissions in order to stop climate change. There is no way around this. But what is the role that software plays here? And what can we - as software engineers - do about this? Let’s take a look under the hood to uncover the relationship between greenhouse gas emissions and software, learn about the impact that we can have, and identify concrete ways to reduce those emissions on a day-to-day basis when creating and running software.
 

Software is everywhere. We use software all the time. There are probably millions of lines of software running in your pocket, on your smartphone, all the time. There are millions of lines of software running on devices all around us, and there are trillions of lines of software running in data centers around the globe that we use every day, every hour. You can’t make a phone call anymore without huge amounts of software being involved, you can’t buy your groceries at the store or use your bank account without software being involved.
 

If you look behind the scenes of all this software, you will find huge amounts of greenhouse gas emissions - the driving factor of climate change - being produced and emitted to the atmosphere in this process, caused by a variety of activities around the software. The hardware that is used to run the software needs to be produced, the data center that runs the software needs to be powered with energy, needs to be cooled, data needs to be transferred over the network, and so on. The more you look into the details of the software, the more aspects you identify that cause greenhouse gas emissions - directly or indirectly.
 

As an example, we can look into data centers that run huge amounts of software every second. We know that the total energy consumption of data centers around the globe is significant - and will increase even further in the future. We are talking here about something in the range of maybe 10% of the energy produced on the entire planet being consumed by data centers in the near future. This is huge. And it is only one of many aspects here.
 

Energy production is still a major driver of greenhouse gas emissions. Even if you hear slogans of “we use 100% renewable energy”, this usually doesn’t mean that your data center really runs on renewable energy all the time. It typically means that the provider buys (or produces) renewable energy in the same amount as the data center uses over a period of time.
 

Unfortunately the energy consumption of a data center doesn’t align with the energy production from renewable sources all the time. Sometimes more renewable energy is being produced than consumed by the data center, but sometimes the opposite happens: the data center needs more energy than is currently available from renewable sources. In those situations, the data center depends on the energy grid to fill in the gaps. And consuming energy from the grid means to depend on the energy mix that is available on the grid at that moment. The exact mix heavily depends on the country, the location within the country, and the exact time. But in almost all cases this mix includes energy being produced from emitting CO2 into the atmosphere (largely from burning coal, gas, and oil).
 

The companies who operate large data centers try to avoid this situation, for example by locating the data centers in locations with cool weather conditions (like Finland), so that less energy is needed for cooling. Or they locate data centers close to renewable energy production sites like windparks or hydro-based power stations. But running a data center on renewable energy all the time is still a huge challenge. We will get there, but it will take a long time.

Passing the Bar Exam101

  My instructor likened studying for the bar to training for some sort of epic athletic event. I distinctly remember his admonition: ...