Sustainable Software Engineering

Sustainable Software Engineering is an emerging discipline at the intersection of climate science, software, hardware, electricity markets, and data center design. The principles and philosophies of Sustainable Software Engineering are a core set of competencies that are necessary to define, build, and run sustainable software applications. By synthesizing this knowledge, a Sustainable Software Engineer (SSE) can make decisions that have a meaningful impact on the carbon pollution of their applications.

Eight principles of Sustainable Software Engineering

There are eight principles of Sustainable Software Engineering that form a shared understanding of what it means to be a Sustainable Software Engineer. The subsequent units in this module will provide a basic introduction to each of these principles.

  • Carbon: Build applications that are carbon efficient.
  • Electricity: Build applications that are energy-efficient.
  • Carbon Intensity: Consume electricity with the lowest carbon intensity.
  • Embodied Carbon: Build applications that are hardware efficient.
  • Energy Proportionality: Maximize the energy efficiency of hardware.
  • Networking: Reduce the amount of data and distance it must travel across the network.
  • Demand Shaping: Build carbon-aware applications.
  • Optimization: Focus on step-by-step optimizations that increase the overall carbon efficiency.

These eight principles are independent of:

  • Application domain.
  • Organization size or type.
  • Cloud vendor or self-hosted.
  • Programming language or framework.

Two philosophies of Sustainable Software Engineering

Alongside the eight principles of Sustainable Software Engineering, there are two philosophies.

  1. Everyone has a part to play in the climate solution If you are reading this document and identify as Green, know you are part of a massive global movement of people who care and are taking action. Greens work in every discipline across engineering, from designing silicon to designing user experiences.Nothing happens in isolation, everything is connected, and small changes lead to significant changes. Even the act of normalizing a discussion about sustainability in technical meetings will empower others to raise their voice. That’s how you create change in any organization.As Sustainable Software Engineers, we believe that everyone has a part to play in the climate solution. Sustainable Software Engineering is inclusive. Whatever sector, industry, role, technology – there is always something you can do to have an impact.
  2. Sustainability is enough, all by itself, to justify our work As Sustainable Software Engineers, we recognize there are many advantages to building sustainable applications. They are almost always cheaper, they are often more performant, they are often more resilient. But the primary reason we are practicing Sustainable Software Engineering is for sustainability, everything else is an added advantage.

Mario

As an expert software engineer, manager and leader, I am passionate about developing innovative solutions that drive business success. With an MBA and certificates as a software architect and Azure solution architect, I bring a unique blend of technical and business acumen to every project.

Beyond my professional pursuits, I am also an extreme sports enthusiast, with a love for windsurfing, mountain biking, and snowboarding. I enjoy traveling and experiencing new cultures, and I am an advocate for agile work models that prioritize flexibility, collaboration, and innovation. Let's connect and explore how we can drive transformative change together!