When we hear the term software design, it often sounds like something very advanced. People start talking about architecture, scalability, patterns, maintainability, and a lot of other big words. But in reality, good software design often starts with very small decisions. Questions like: Should I repeat this logic? Am I making this solution more complex than needed? Am I building something I do n