DEV Community

Ismael Velasco
Ismael Velasco

Posted on • Originally published at ismaelvelasco.dev on

A starter kit for building climate friendly software

Set of tools

When you think about climate change, it's easy to feel fatalistic. Not an unfamiliar feeling to anyone who has had to face the Big Bad Ball of Mud for the first time.

And when you read more about it, it's easy to feel not just fatalistic, but guilty, seeing as the code you continuously deploy into the wild, the apps you lovingly (or frustratingly) maintain, the servers you consume, account, when added to the work of all your peers, for as many CO2 emissions as the whole of the aviation industry! Everyone tells you to cut down on flying, but who tells you to cut down on <video> tags?

image.png

Still, we're not fatalists, we're software engineers: problem solving is what we do. Every week we get to feel like crime scene investigators, obviously doomed idiots, and certified geniuses, twice over. In a single day.

image.png

Being responsible for so many emissions, counter-intuitively also gives us an extraordinary opportunity for postive inpact. By applying green software patterns and integrating things like tree planting apis, we can build not just low carbon, but carbon positive digital products. Given the scale of much of what we work on, if just a small percent of us commit to a green web, our impact on emissions could be exponential.

Still, if you're like me, you may not know how to start. Green web patterns are not yet regularly discussed in meetups, tutorials, vlogs and general dev land. So here are some resources that might help get you started.

The green web journey began for me when I stumbled across this fantastic blog piece by Phil Sturgeon of Build APis You Don't Hate fame.

Soon after, I was invited to organise a panel and present at COP26+ on Engineering and Climate Change at the invitation of the International Environment Forum. I instantly thought of Phil, who graciously agreed to join me, and two other superb speakers, on what proved to be an insightful and empowering exchange. The experience made me aware of the power of engineering communities to both inform, and motivate, and I set about looking for the best one in the tech space.

I am confident I found it in https://ClimateAction.tech. They have built a fantastic and impactful green tech community, including many of the pioneers and leading voices in the green software movement .

From their website you can join the Slack group which is probably the best single place to keep track of developments, network with fellow travellers and ask questions.

Other good resources to get started are:

The Green Software Foundation and its podcast, Environment Variables

The Well Architected Framework's Sustainability Pillar

And resources like awesome earth and https://www.cloudcarbonfootprint.org

As to the skillset involved in environmentally aware software, I suspect you'll find you already have a strong foundation.

It just so happens that what's required for green tech is exactly what's required to reduce costs, cpu usage, improve speed and user experience in any web application! These should be part of the arsenal of any experienced engineer, and part of the journey of every committed junior one.

  • Move your application to a (greener) cloud provider/zone
  • Make your content delivery as local to the client as possible (e.g. via CDNs)
  • Minimise your page loads and data consumption by targeted caching strategies using service workers
  • Design your APIs to minimise http requests and data exchanges
  • Optimise your images and reduce the javascript and in general the data you send to the client front end, by minification and exclusion.

So while you may not have thought about the emissions side too much to date, I suspect you already know a thing or two about performance optimisation, api design, caching, and graceful degradation/progressive enhancement for "digital sobriety".

Which means you're already set to go on your green journey, equipped with a community, good resources, and your own accumulated skill.

Top comments (0)