Embracing Sustainable Software Development: A Case Study in Green Computing at RJJ Software

Low angle photography of green trees during daytime. The photo it taken such that the viewer is looking upward toward the sky, with the trees framing the view

The cover image for this post is by Brian Garrity

Introduction

In recent years, the importance of environmental sustainability has become increasingly clear. As a result, businesses worldwide are seeking ways to reduce their overall impact on the environment. Green computing, or sustainable software development, focuses on minimizing energy consumption and waste throughout a software product’s entire lifecycle. This post explores the measures we have taken in this direction, drawing upon insights from various resources such as:

Energy-efficient Hardware

At RJJ Software, colleagues utilize M2 series Mac hardware for their work. These devices are specifically designed with energy efficiency in mind, thus contributing to a greener software development process by reducing electricity consumption and heat generation as mentioned in Andrew Cunningham’s review of the M2 Pro Mini:

As measured by macOS' built-in powermetrics command-line tool, the M2 Pro’s average power usage when fully loaded is around 36 W, whereas the Core i5 can use between 65 and 150 W and the Ryzen 7 between 90 and 136 W.

This comparison highlights the energy efficiency advantage of Apple’s M2 Pro hardware. For every Core i5 system operating at the higher end of its average CPU power, you could potentially run four M2 Pro Mini devices, each running within the average CPU power range. This emphasizes the greener approach to software development that we embrace by utilizing energy-efficient technology for our work processes.

Optimized Code

Writing optimized code is crucial in sustainable software development. Our developers focus on creating efficient algorithms and eliminating unnecessary computations, which reduces the overall resource usage of their applications.

Code optimization is a complex process that varies depending on the application and codebase in question. To enhance efficiency, it’s crucial to first obtain a “heat map” of the most frequently used features within the application and identify areas requiring optimization. In addition, measuring the code base’s overall efficiency using hardware representative of the live server and real user actions can prove beneficial. Lastly, performing audits on any third-party libraries being utilized and seeking out alternatives with better performance is essential to ensure a greener software development process.

We would recommend taking a look at the Green Web Engineering research paper by Markus Dick, Stefan Naumann and Alexandra for optimisation suggestions for web-specific applications.

Decentralization with Tailscale

Adopting a decentralized architecture, such as using Tailscale for a VPN solution, allows us to avoid large centralized data centers that consume high amounts of energy. This architecture is coupled with our remote working policy (detailed below). This approach not only lowers total energy consumption as a company but also enhances privacy and security for colleagues.

Tailscale enables the establishment of a decentralized, peer-to-peer VPN across all our devices, eliminating the need for constant maintenance and operation of a centralized VPN server. By implementing this approach, devices only appear on the secure network when they are powered on and in use, resulting in increased security, privacy, and reduced energy consumption.

Cloud Providers with Green Initiatives

In pursuit of sustainability, we actively investigate cloud providers that prioritize environmentally responsible practices and implement green initiatives. By choosing these partners, we contribute to a more sustainable software ecosystem and sets an example for other organizations in the industry.

As mentioned in Green Web Engineering:

The estimated power consumption of data centres in the U.S. was increasing from 28 in 2000 to 61 billion kw/h in the year 2006 (U.S. EPA, 2007) and in the world from 58 billion kw/h in 2000 to 123 billion kw/h in 2005 (Koomey, 2007). Consequently, considering problems like climate change, reducing energy consumption of the Web is necessary.

The vast energy consumption costs of data centers are indeed staggering. As mentioned in the quote above, this figure (123 billion kWh in 2005) pertains to data centers located in the United States alone; it does not include those outside the United States and is from 2007, indicating the potential growth of energy consumption in this sector over time.

Remote Work and Reduced Commuting

Allowing colleagues to work remotely from anywhere has been instrumental in reducing daily commuting needs and associated carbon footprints. This approach not only lessens environmental impact but also increases personal safety by eliminating exposure to crowded public transportation or busy roads.

Mark, our Chief Podcast Mastering Consultant, emphasizes the benefits of remote working in terms of flexibility and convenience:

Being able to work remotely means that I can literally work from wherever I want. If that means that I work out of my home office, the local coffee shop, or a rented office space, I’m able to get the work done without any issues. As long as I connect to the VPN, I can access all of my files and contact whoever I need using our internal chat app.

- Mark Taylor, Chief Podcast Mastering Consultant

Remote working not only benefits our colleagues in terms of personal productivity but also significantly reduces their overall carbon footprint. According to the UK Government source, car and taxi emissions accounted for around 57 million tonnes of CO2 equivalent in 2021 (source: Transport and environment statistics: 2023).

By embracing remote working, we effectively mitigate these emissions by enabling employees to work from their preferred locations.

Conclusion

Our dedication to sustainable software development serves as a model for other companies in the industry. By implementing green initiatives across various levels, from hardware selection and code optimization to partnering with responsible cloud providers and promoting remote work environments, we continue to pioneer environmentally friendly software development practices.

You can read more about our green computing initiatives and goals here: Our Green Initiatives.