My name is Christian Rehn and I'm a software architect from Germany. When I started programming in 2001, naturally my first design choices were extremely bad. And I had no idea that this was the case. When I finally realized that my complete lack of experience resulted in unmaintainable and fragile designs, I wondered how to distinguish good design choices from bad ones. Over the time I found out that there are many design principles or rules of thumb which help making good design decisions. In 2012/2013 I wrote my Master's thesis about these principles. The notion principle language and also this wiki were created in the course of the thesis. Some time after that Matthias Wittum and me created http://design-types.net.