Performance engineers are green engineers

I’m a software performance engineer – my job is to make software faster. The ideal way to make software faster is to stop making it do things that it doesn’t need to be doing to get the job done. Any rational person would look at that sentence and say “well duh”. Any sensible software developer will look at that sentence and should be appalled that such a statement is even necessary. That said, it is. Removing busy work can take many forms such as changing an SQL query, adding a database index, reducing abstraction for specific cases, reusing reusable objects instead of creating new ones at every iteration, and using the right data model/algorithm for the job. Ideally when you get done the software is faster while using fewer CPU cycles and the originating developer has been educated as to how it should have been coded to begin with.

Using fewer CPU cycles directly relates to the new environmental movement. The fewer CPU cycles a computer is using the less heat is being generated and the less electricity is used to both power the CPU and cool the data center. In addition, the fewer CPU cycles required by a single application the more applications can reasonably share a pool of CPU resources (either on the same server, sharing via virtualized hardware such as AIX LPARs, or sharing via virtualized software such as VMWare, AIX WPARs, or Solaris Zones). The more applications you can cram on a single physical server efficiently using server’s resources the fewer servers you need, the less electricity you use, and the greener you are.

Thus my assertion is that performance engineers are green engineers. And not to make a too lofty point of it, but we play an important role of directly reducing the CO2 emissions from the IT industry, which currently accounts for 2% overall — the same as the airline industry. And if done well, the software we create just might help with reducing the other 98%.