  A rateless code encodes a finite length information word into an infinitely
long codeword such that longer prefixes of the codeword can tolerate a larger
fraction of errors. A rateless code achieves capacity for a family of channels
if, for every channel in the family, reliable communication is obtained by a
prefix of the code whose rate is arbitrarily close to the channel's capacity.
As a result, a universal encoder can communicate over all channels in the
family while simultaneously achieving optimal communication overhead. In this
paper, we construct the first \emph{deterministic} rateless code for the binary
symmetric channel. Our code can be encoded and decoded in $O(\beta)$ time per
bit and in almost logarithmic parallel time of $O(\beta \log n)$, where $\beta$
is any (arbitrarily slow) super-constant function. Furthermore, the error
probability of our code is almost exponentially small $\exp(-\Omega(n/\beta))$.
Previous rateless codes are probabilistic (i.e., based on code ensembles),
require polynomial time per bit for decoding, and have inferior asymptotic
error probabilities. Our main technical contribution is a constructive proof
for the existence of an infinite generating matrix that each of its prefixes
induce a weight distribution that approximates the expected weight distribution
of a random linear code.
