Writing software that can be maintained is and always has been crucial. But so is writing software that can be enhanced and extended. It's become commonplace for many apps today to expose APIs so externally written apps can have access to their data or their services. Imagine how cool it would be to expose an API for changing or extending an application's functionality. This means the ability to use the architecture of an application in order to enhance that system. This is the power of the patterns and techniques you'll learn in this session. They're useful and geeky so bring your propeller hat.