This review describes computational procedures for deriving the amino acid sequences that are compatible with a given protein backbone structure. Such procedures can be used to gain insight into the constraints imposed by the 3D structure of the protein sequence, or to design proteins that are likely to adopt a given backbone conformation. We start by presenting a short overview of the various types of approaches to protein design developed over more than a decade. This is followed by a more detailed presentation of a recently developed sequence selection procedure DESIGNER. This latter presentation illustrates the basic principles underlying this type of procedures, described what they may teach us when applied to small proteins, and highlights issues that need to be addressed in order to go forward.