There's a lot of different names for the idea, Green Tech, Clean Tech, Green Software, Sustainable Software... the principle is to focus on reducing the environmental impacts of the software and systems being built as much as possible.
This is notably different from Climate Tech which might be trying to fight the climate crisis by building technological hard/soft solutions to improve agriculture with robots/AI or whatever, but thats a whole other story.
Green software is about you, in whatever business you are in, looking at the software and all of its supporting infrastructure, figuring out what impacts it's having, and putting in the work to reduce those impacts as much as possible.
What's the big deal?
If you're lucky enough to still have windows, take a look out there and you'll notice things aren't right. The climate is progressing to ever more extreme levels and things need to change. Everyone has a lot of jobs to do, and there are a lot of climate solutions out there, but most of us can't set up rural biogas networks or start a kelp farm (get in touch if you are thinking about it).
We can however make sure our software is wasting as few resources as possible, because currently the internet is responsible for about ~4% of global CO2 emissions and its on a course to double. That's about the same as global aviation, and it's entirely within our control to do something about it.
What can we do?
The first thing we can do is to educate ourselves. What are the problems? What are the solutions? Where is the low hanging fruit?
We need to make sure we're using minimal electricity, because that creates emissions even if its renewable, and especially because the grid is not 100% so that clean energy could have gone somewhere else.
We need to make sure we're not stressing out hardware uneccessarily, because as well as obviously emitted carbon to manufacture it took natural resources too, and now its going to be recycled or binned which has a further impact.
Finally we're going to think about how we can be aware of the carbon intensity of doing things at certain times in certain places, which involves a bit of learning about how electrical grids work. Don't worry, we can figure this out.
Carbon Grid Intensity: Sounds Intense!
Carbon grid intensity refers to the amount of CO2 equivalent emitted for every kilowatt-hour (kWh) of electricity that's consumed. It's a measure of how "dirty" or "clean" our electricity is. High carbon grid intensity implies a higher proportion of fossil fuels, while low grid intensity indicates more clean energy sources like wind, solar, or hydro.
For software and data centers, carbon grid intensity plays a huge role. If a data center operates in a region with high carbon grid intensity, its carbon footprint will be much higher than if it were operating in a region powered by renewables.
The carbon grid intensity can change throughout the day, as more solar comes online in the day, maybe more wind in the evening, could be some tidal stuff happening whenever, and then a big spike of coal plant when those others drop off. It could follow similar patterns most days or be a complete mystery, but the most important thing to know is that 1 kWh doesn't always produce the same amount of CO2 as another kWh, even in the same location. It's depends on when and where.
When: Temporal shifting
If you're trying to run some huge process (sending a bajillion emails, training an AI how to spot weeds) then you might have just picked a cron job with
0 0 0 0 0 because it was easy to pick, but working in the middle of the night means there is not going to be any solar energy, and if there isn't enough alternative clean energy nearby that means you're running that logic on coal or gas. If you can wait until the sun comes, the grid intensity is likely to be a whole lot better. Maybe that particular place generally has loads of wind at night, so maybe you do actually want to run it then.
This is called temporal demand shifting. We can predict future carbon intensity pretty well using all sorts of forecasting software, some of which are available as convenient APIs we can call, to see what the grid intensity is right now, or what it will be later.
Where: Spatial shifting
Spatial shifting is a fancy name for moving the work you're doing to another physical location which currently has a lower carbon intensity. So the example above, if you can't wait for the sun to come up or the grid to get cleaner, you could just do that work somewhere else. If it's the middle of the night in New York and the grid is looking bleak, maybe you can run that process in Japan.
Perhaps moving around often is a problem because your processes need to be colocated with large amounts of data, so perhaps you can move to somewhere with longer seasonal sunlight hours. Running a server in your basement in Alberta compared to a cloud datacenter running in Spain is going to have a massive difference in carbon intensity. The difference is going to be night and day! 🥁 (Deal with it.)
There's loads of other ideas knocking around too, and as you can see from all these handy graphics theres a resource called Green Software Foundation powered by the Linux Foundation, that's full of amazing resources to help train techies up on what they can do with everything relating to software and infrastructure.
You can even take a free exam and get a certificate, which will help everyone know you know what you're talking about when it comes to saving the planet.
If enough of us follow these practices we can stop kicking the planet in the face for no reason, and work towards making tech be part of the solution instead of part of the problem.
How can I convince my boss?
All over the world more companies are being required to do manditory carbon accounting, and as they decide to become Carbon Neutral (keep doing bad things and buy some carbon offsets to business as usual like a bunch of jerks) or Net Zero (massively reduce the carbon emissions to as close to zero on a timescale and offset the remainder as you go), it becomes increasingly useful to be able to track and reduce the carbon footprint of your software.
In terms of pure business logic, carbon credits are only going up in price, and as they get more expensive you will at some point be forced to look into reducing your carbon footprint, even if you were "too busy or whatever" to do it for alturistic reasons. Instead of waiting too long and doing a massive hercluean effort later, why not train your team up so that they're making the best choices as they create new systems and maintain existing ones. A little bit of "boy scouting" might save you a whole lot of nonsense later on.
Where can I get help?
- Head over to the Green Software Foundation and read up on their resources.
- Try and take the exam and get others to do the same.
- Find more Clean/Green/Climate Tech nerds like
I'm always happy to help run people through this course, expand on anything that people are struggling with, shout at your boss, or get you started with various tools so that you can start to track and reduce your carbon footprint.
API and Green Tech consulting is how I pay the bills, as I spend ~60 hours a week running Protect Earth entirely unpaid. I've got a chainsaw course tomorrow and they aren't cheap! 🤣