Are you tired of spending hours reading code just to find the right place to make a small change? Are you forced to split your application into several just so that devs don't step on each other's toes? This talk unites theory with practice to show you how to structure your code so that it is easy to read, to test and to maintain. You will step out with concrete ideas of how to improve your code design.