Building a Strong Foundation in Software Development using SOLID principles