Whenever you're ready, walk me through how you'd approach this.
Describe several software design patterns and explain how you would apply them in building applications.