right hi folks good to see so many of you here so the principles of green software engineering how green is your application this is a chart over the global atmospheric CO2 concentration since the year zero I was born here at 359 parts per million my parents in turn were born at 320 parts per million and my child will be born at 420 parts per million great now we all remembered how an exponential curve Works in case anyone had forgotten since high school math but what that means is that we have been aware of the rapid
rate of climate change since I was born since all of you were born as well and there is scientific consensus that the amount of greenhouse gases that humans are responsible for emitting into the atmosphere is causing our our climate to rapidly change so the question then becomes what does that have to do with software but firstly who am I and why am I talking about this my name is Sarah baiman I'm an individual contributor at the green software Foundation where I've been a member since it was founded back in May of 2021 I'm also senior
software engineer at Microsoft where I work with Microsoft 365 products I'm one of the authors of the brand new O'Reilly book Building green software which just launched in early release so you can go check it out if you want to I'm Swede living here in beautiful austral Norway it's very important to Scandinavians that those two are different tend to be very unimportant to everyone else but now you know so this is a passion of mine because like I said I've been aware of climate change my whole life and I'm very motivated to be part of
the solution so in this talk I'm gonna try and explain the ways that you can also be part of the climate solution so in the next few minutes we will talk about the principles of green software we will talk about carbon efficiency we will talk about how you measure your carbon footprint and we will also talk about climate commitments so firstly what makes software green everything in our industry emits carbon that is just the way our industry Works maybe in the future we'll be able to run on something else like water or air but we're
not there yet so everything uses carbon and when I say carbon I mean carbon dioxide equivalent which is a grouping term for all the different greenhouse gases based on their global warming potential because carbon dioxide equivalent is a very long word and I don't have time for that but for software to be green we needed to be carbon efficient and that means to emit the least amount of carbon into the atmosphere as possible and there are three key ways to achieve that Energy Efficiency Hardware efficiency and carbon awareness so the first is Energy Efficiency probably
the first thing that comes to mind especially if you've been living in Europe through the energy crisis the past year you've been very aware of how the electricity grid really works so to be energy efficient we need to consume the least amount of electricity possible because electricity is a proxy for carbon it's not a one-to-one mapping and we'll talk about that in a bit but it's a very good proxy as far as proxies goes and you can be energy efficient by doing things like for example rewriting your code or likely you're going to get a
lot more bang for your bucks by being efficient with how you run your operations the second way to be carbon efficient is to be Hardware efficient because every physical object that we create is especially things like servers phones laptop they come with a huge carbon debt because we had to mine the material somewhere ship them around the world possibly several times assemble them often in very energy intense processes and then shift them all the way to the end user so when we get our new fancy server or phone or laptop all that carbon has already
been released into the atmosphere the thing we can do is to use the least amount of it as possible so use the least amount of embodied carbon possible and the typical two key ways to achieve that is to make client devices last longer don't skip out on that backwards compatibility or to increase your server density the last way to be carbon efficient is to be carbon aware do more when the electricity is clean and do less when the electricity is dirty and this is where we truly go down the rabbit hole and you might think
this is very sci-fi what does that mean here in Norway we have hydro which you may or may not be aware of that means whenever you charge your phone here it's going to come from Hydro it's going to be equally clean but if we just take a short hop skip and a Beat over to Sweden where I'm from they have a much more varied energy production and that means that the cleanness of the grid will vary over time it also varies a lot regionally across the world because energy production is still every National Affair even
though we tend to trade it on the energy Market as well so you may think that this is sci-fi but actually there's some really big products out there already doing this Xbox have carbon aware game downloads Windows 11 have carbon aware install updates and iPhone have something they call clean charging which also uses a forecast of your local grid to decide when they should charge your phone excellent now we know the key things to make software green the next thing is how do I measure my footprint because if you can't measure it it's really hard
to improve it especially if you have to operate in some sort of corporate world where you have to have okrs in metrics and targets to reach and typically when we talk about carbon Footprints we get a total total is very useful for one set of decisions I'm sure that knowing the total emissions for Microsoft is very useful to Sacha and his leadership team for me who have four apis on Microsoft graph it's very far away any efficiency optimizations I do will not really impact that total because it's so far removed uh so a total can
be great but to make the right decisions for people like us with feet on the ground and hands on the code we might need something else and that's where the green software software carbon intensity specifications comes into play the SEI is not a total of carbon emissions it's a rate and it consists of the things we talked about conveniently how that works out isn't it so it's the energy that your software consumes multiply with the location-based intensity of the grid so no Market based reductions are allowed here and then you add on the embodied carbon
cost and the things that make this a racist you then divide this with a functional unit of your choice called R in this formula and this could be anything that describes how your applications scale so it can be per user it can be per device it could be per API call anything that makes sense to you and the beauty of this is it can be used in any state of software development and it's heavily biased towards action you want you to measure it change something and measure again and see did it improve did it get
worse did nothing change and based on that take decisions to overall step-by-step decrease your carbon emissions and I said that no market-based reductions were allowed and why is that that is because we want to be part of your Net Zero strategy so what does that mean then to understand that we need to talk shortly about climate commitments because as a society there are a number of methodologies that we commonly apply like overall to help fight climate change not only software but like everywhere and they typically fall into these two branches so we have abatement or
eliminations and that is when we eliminate so remove um sources of carbon emissions within your operation and value change so things that you have control over the other branch of this tree is offsets and offsets can mean two things so either you have avoidance or compensating where you're basically paying someone else to not emit carbon so that's outside of your value chain and operations lastly we have neutralization or removal where you quite literally suck carbon out of the atmosphere by for example planting trees or building huge fans like the ones they have in Iceland and
then you remove carbon from the atmosphere either outside of your value chain or within your value chain and why do we separate them they they sound kind of same same but they're different different and that is because they relate differently to the goals we have set as a global Community to reach the 1.5 Centigrade curb according to the Paris agreement by 2045. because if you're aiming to be carbon neutral it's enough that you match your total overall emissions with um emission offsets but for Net Zero offsets is not enough you need to eliminate emissions within
your own value chain and operation some say as much as possible or there's a 90 percent um which is a pretty high number and you can only offset the rest so it's important to understand especially if your company has a Target to hit one of these goals what they mean to you and what they mean to your code if you thought that was fun but this was way too short I have good news for you the Linux Foundation have a free course called Green software practitioners for practitioners course it's an introductory course to Green software
and you can go check it out for free I'm also talking tomorrow at nine if you want to learn more about how this relates to AI so just to try and summarize what we learned at this very short amount of time we learn that software has a role to play in the climate solution and what that role is is up to us we also learned that green software is carbon efficient by being energy efficient Hardware efficient and carbon aware and lastly we looked at the green software software credit intensity specification that you can use to
assess the carbon score of your product already today thank you so much [Applause]