Programmers make architectural decisions everyday with each new feature, a tiny fix or an overhauling refactoring. Unfortunately, a fashionable pattern-of-the-day or a cutting edge technology is often given undue emphasis, whereas a comprehensive quality picture is overlooked. We will discuss the symptoms of a rotting design and how to avoid them by applying the SOLID architecture design principles. Andrey is a full-stack software developer with more than 10 years of experience with C#, .NET, SQL, Java and the web. Currently he is programming mostly in Java and JavaScript for the mobile web.