Abstract: We provide a high level introduction to fountain codes, and describe some of the ways that fountain codes have been used in the past and could potentially be used in the future. Example future applications that will be described include: (1) reliable distributed storage; (2) an Internet architecture fundamentally based on fountain codes. No background knowledge is assumed from the audience.