The fuzz effect can be obtained by clipping a signal. If you do this with solid-state devices the raw result is grating on the ears, due to generation of odd harmonics. However by using tubes (valves), the sound is more listenable, because the harmonics are mostly even. (According to articles on the subject.)
To make a single echo, add a duplicate of the original signal and delay it by anywhere from a fraction of a second to several seconds.
Reverberation might be considered as being multiple echoes jumbled together until they create an ambient indistinct echo. A digital sound processing program might have a module to do this, and I'm sure it was a major feat to write the code for it.