Skip to main content
Eco-engineering

Computing runs on
electricity.
The cost is invisible.

Every program spends energy. Almost none of them can tell you how much. Multiply that gap across the world's software and the waste is real, and unmeasured. This is the problem Joule exists to fix.

I · The Scale

Data centers already draw
hundreds of terawatt-hours.

Data-center electricity use is measured in the hundreds of terawatt-hours per year, and estimates put it on track to roughly double before 2030. That is before counting the billions of devices running software at the edge, each drawing power one operation at a time.

~415 TWh
Data-center electricity
per year
Projected growth
by 2030
billions
Edge devices running
software today

Figures follow IEA electricity estimates. Orders of magnitude, not point predictions.

"Efficiency is a choice we can only make deliberately once we can see the cost. Right now, at the level where code is written, we cannot." The premise
II · The Blind Spot

The tools optimize for speed.
Nobody prices the watts.

A profiler will tell you which function is slow. A build will tell you how large the binary is. Neither tells you the energy a function spends. So engineers optimize the number they can see, cycles and milliseconds, and the energy number stays a guess.

Speed and energy usually move together, but not always. Waking a radio, spilling a cache, and busy-waiting can all be fast and wasteful at once. Without a number, those trade-offs are invisible.

What you can see today
Wall-clock timeyes
CPU cyclesyes
Binary sizeyes
Energy per functionno
What Joule adds
Wall-clock timeyes
Energy per functionyes
Compute / memory / io splityes
Budgets checked at buildyes
III · Measure First

Make the cost
a first-class output.

Joule attributes energy to every function and operation, then compiles to C for a fast native binary. Every build carries a receipt. When the cost is a number in front of you, efficiency stops being a virtue you hope for and becomes an engineering target you can hit.

See it

A receipt on every build, broken down by function and by category.

Bound it

Set an energy ceiling on a function and let the build report against it.

Improve it

Change the code, diff the receipts, and watch the joules move.