Lachlan Patrick Virtual machines are useful for implementing programming languages, but unless care is taken, such implementations can be slow or create difficulties when trying to extend the language with extra libraries or modules. This talk discusses some implementation tactics and tricks, from the point of view of a software engineer, particularly with speed, portability and extensibility in mind.