Structure and Interpretation of Computer Programs is full of interesting
footnotes. Here's a good one about the Fermat test for prime numbers:

Numbers that fool the Fermat test are called *Carmichael numbers*, and
little is known about them other than that they are extremely rare. There
255 Carmichael below 100,000,000. The smallest few are 561, 1105, 1729,
2465, 2821 and 6601. In testing primality of very large numbers chosen at
random, the chance of stumbling upon a value that fools the Fermat test is
less than the chance that cosmic radiation will cause the computer to make
an error in carrying out a correct algorithm. Considering an algorithm to
be inadequate for the first reason but not for the second illustrates the
difference between mathematics and engineering.

## Hello

I'm David Winterbottom, a minimalist software engineer living in London.

I'm Head of Engineering at Octopus Energy, a UK energy supplier.
Previously, I was Head of Engineering at Yoyo Wallet, a mobile payments startup, and
a Technical Director of Tangent Snowball, a digital agency.

I spend most of my free time hacking. I am the author of commandlinefu.com and
the e-commerce framework django-oscar amongst other things.

I used to be a mathematician; I have a PhD in Mathematics from the
University of Nottingham and an associated interest in cryptic crosswords,
chess and bad puns.

If you've read this far, you may want to follow me on Twitter.

More about me »