This chapter takes the reader through all of the steps involved in using hidden Markov models. The purpose is to make the reader aware of all of the important components which a user might potentially need to understand, but not go into a detailed explanation of algorithms such as dynamic programming which are necessary to write software from scratch. For more detailed information on the algorithms, the book 'Biological sequence analysis`  is recommended as further reading. Software which has already been written and which is freely available is recommended at the end of the chapter. In this chapter there is a strong emphasis on the use of hidden Markov models for remote protein homology detection, but the principles are described in general terms applicable to other applications.