The Ballmer Peak for Brewers

I have a hobby—that hobby is making beer. A key piece of the process of making beer is drinking beer. The better the beer you drink, the better the beer you make. Much as there is an art to brewing, there is an art to drinking while performing another task. Therefore, the Ballmer Peak—a theory postulating that programmers become more skilled at a certain blood alcohol level—applies to brewing just as it does to programming.

Making a batch of all grain takes a while, just like a coding session. Luckily humanity didn’t need Microsoft’s Steve Ballmer in order to solve this problem. The solution is the session beer, a lower alcohol beer preferred by munitions workers in WWI England.  By investing a small amount of time up-front you can bask in the glory of the Ballmer Peak Effect without having to break your flow for periodic self-state analysis. In this case I would argue that pre-emptive optimization is more desirable than continuous adjustment. By doing some work ahead of time you should be able to achieve O(log n) efficiency rather than risking an exponential decay. For those of us who are forgetful it would be simple to write a cron job reminding you to take a drink at regular intervals.

It would appear that the common reference when calculating BAC is “one drink” per hour.  It turns out that when referring to beer this means 5% ABV at a volume of 12oz or 0.6oz of alcohol.  Below we have two tables, one for men and one for women. You will find the drinks per hour across the top and the individuals’ weights down the left column.

For those who don’t like tables (BAC Calculator)

For Males

Weight(lbs) 1 drink

2 drinks

3 drinks

4 drinks

5 drinks

6 drinks

7 drinks

8 drinks

9 drinks

10 drinks

100 .043 .087 .130 .174 .217 .261 .304 .348 .391 .435
125 .034 .069 .103 .139 .173 .209 .242 .278 .312 .346
150 .029 .058 .087 .116 .145 .174 .203 .232 .261 .290
175 .025 .050 .075 .100 .125 .150 .175 .200 .225 .250
200 .022 .043 .065 .087 .108 .130 .152 .174 .195 .217
225 .019 .039 .058 .078 .097 .117 .136 .156 .175 .198
250 .017 .035 .052 .070 .087 .105 .122 .139 .156 .173

For Females

Weight(lbs) 1 drink

2 drinks

3 drinks

4 drinks

5 drinks

6 drinks

7 drinks

8 drinks

9 drinks

10 drinks

100 .050 .101 .152 .203 .253 .304 .355 .406 .456 .507
125 .040 .080 .120 .162 .202 .244 .282 .324 .364 .404
150 .034 .068 .101 .135 .169 .203 .237 .271 .304 .338
175 0.29 .058 .087 .117 .146 .175 .204 .233 .262 .292
200 .026 .050 .076 .101 .126 .152 .177 .203 .227 .253
225 .022 .045 .068 .091 .113 .136 .159 .182 .204 .227
250 .020 .041 .061 .082 .101 .122 .142 .162 .182 .202

So, let’s do a little math:

If your beer of choice happens to be right at 5% alcohol there isn’t much to do. If it isn’t you will need to do a bit of conversion. For example, if you’re paired up with an ABV of 4% you’ll need to consume 15 oz for every “one drink” (oz * ABV = 0.6).

That’s the easy part. The next steps may take some trial and error. The Ballmer Effect dictates that our BAC should stay between .129 and .138. The tables above (shamelessly pilfered) can give you a good starting point but aren’t very fine grained. Just remember to account for the volume calculated above when counting the number of “drinks.”

There is one other major factor to consider (and another table):

The Time Factor

Hours since first drink

Subtract this from BAC

1

.015

2

.030

3

.045

4

.060

5

.075

6

.090

source: Evans, Glen and Robert O’Brien (1991) The Encyclopedia of Alcoholism.

Of course there are a myriad of smaller variables that can have an impact on your metabolization rate, such as how recently you’ve eaten and the condition of your liver.

With a little TDD you should be able to tune this in no time.  At which point you have no excuse not to regularly practice “two-row” programming.

If nothing else I hope this at least eliminates the scheduling hassle of your next pair programming session. Beer rarely has availability concerns.

I think I’m going to go knock out a recipe for a new session beer, log n maybe?

Leave A Comment

You must be logged in to post a comment.