Kinetic Monte-Carlo (KMC) is a stochastic method that can be used to simulate crystal growth and evolution on atomistic length-scales. I will begin by reviewing algorithms for the efficient simulation of lattice based models. Then I will discuss coupling KMC simulations with both larger scale continuum models and with smaller scale molecular dynamics simulations. If time permits, I will finish with a discussion of some approaches to including elastic effects in off-lattice simulations.