The word Carbon Footprint is a sham designed by British Petroleum to blame individuals for climate change while hiding the fact that effectively 100 corporations are responsible for 71% of all global emissions.
However, since the word has stuck, I decided to use it as the name of this page. May it also serve as a reminder that I cannot make a significant reduction in this global problem through my individual actions.
Reducing my IT carbon footprint
As a Computer User
I think I have a dozen computers lying around the house (no IoT devices). The general principle to follow here is to do a task using a computer that would consume the least amount of energy.
- Principle of least power: Always use the least powerful computer that can do a job.
- To quickly look up something, like the weather or a Wikipedia page, do it on a mobile device
- If you have a family computer that only sees light use, consider using a single board computer for this purpose
- If your Android device allows connecting to an external keyboard, you can do a lot more writing tasks on it
- Disabling sleep on your computers can waste a lot of energy.
- When watching videos, use the appropriate resolution based on screen size. It's wasteful to stream a 1080p video on a mobile phone with a small screen. Generally avoid 4K videos except on special occasions.
- Don't keep multiple monitors turned on when primarily working on a single monitor. Laptop monitors also count - keep the laptop in clamshell mode if not in use.
- Advertisements in general and auto-playing video ads in particular are extremely wasteful. A single advertisement could be wasting CPU cycles on hundreds of computers - on your computer, on servers for big data, machine learning and auctioning and on the network with routers and switches. Use ad-blockers, especially ones that avoid making requests to advertising domains in the first place.
- Close applications that you are done using. Avoid using inefficient applications. An extreme case would be to ditch an Electron JS application in favor of a command line one.
- Android tablets, especially the ones on which proprietary bloat hasn't been removed, use up a lot of battery when Wi-Fi is kept on. Keep the Wi-Fi switched off when not in use.
As a Software Engineer
Writing efficient software
The code I write might be written only once but will execute millions of times on servers. Efficient software would ensure not only that the server spends less electricity running my code, but also helps end users use their computers for a shorter duration.
- Care about algorithmic efficiency while programming
- Minimize the number of database calls made
- Reduce the time spent waiting on the network
- Write more efficient database queries
- Parallelize network calls if possible
- Make good use of cheap concurrency constructs like event loops and green threads
- Put some effort into choosing the right technology for the task
- Use caching liberally to avoid unnecessary network traffic
- Avoid importing too many external libraries. Try to use the programming language's standard library as much as possible
Migrating enterprises to the Cloud
My work with enterprises primarily involves moving their workloads to one of the Clouds owned by Big Tech. I have reason to believe that this is overall a better utilization of compute resources as compared to their existing data centers. Cloud, though it is always advertised for quickly scaling out is also good as scaling in. Optimizations in getting stuff done with fewer resources would also reduce the Cloud expenditure of enterprises and thus is less likely to be met with resistance.
Not adding more fuel to the fire
Avoid working on intrinsically wasteful and energy-intensive technologies like proof-of-work blockchains, Internet of Things and Ad-Tech.