Energy efficiency is now a major, if not the major, constraint in electronic systems engineering. Significant progress has been made in low power hardware design for several decades. The potential for savings is now far greater at the higher levels of abstraction in the system stack. The greatest savings are expected from energy consumption-aware software. Promoting energy efficiency to a first class software design goal is therefore an urgent research challenge.Designing software for energy efficiency requires visibility of energy consumption from the hardware, where the energy is consumed, all the way through to the programs that ultimately control what the hardware does. This visibility is termed energy transparency. Energy transparency enables a deeper understanding of how algorithms and coding impact on the energy consumption of a computation when executed on hardware. It is a key prerequisite for informed design space exploration and helps system designers to find the optimal trade-off between performance, accuracy, security and energy consumption of a computation.In this seminar I will outline recent research advances that will give "more power" to software developers. We will investigate why software is key to energy efficient computing, what energy transparency is, how to monitor and measure the energy consumed by software, how to model energy consumption at different abstraction levels, how data affects the energy consumption of a computation, and how to statically estimate the energy consumed by software.