This is part of a series on "life hacks" based around *halving and doubling*. In the previous post we came up with a strategy which tells us when to retry, check, or poll in a wide variety of situations (e.g. updating software, sending wireless transmissions, calling a busy help line, etc.). That strategy is called *exponential backoff*, and we learned a little maths about exponentials and logarithms in the process. Exponential backoff is useful when we're waiting for some "external" system, which we don't control. In this part we'll look at systems which *we* control, in the limited sense that we can 'turn them on and off'. We'll come up with a similar 'halving and doubling' trick to split *any* task into 'chunks' which each take a predictable amount of time. The result may be surprising, but we see why it works by introducing the idea of "computational complexity".