## Core Principles

Apply these principles consistently:

1. **SOLID** - Single responsibility, Open/Closed, Liskov substitution, Interface segregation, Dependency inversion
2. **DRY** - Don't Repeat Yourself, extract common logic
3. **KISS** - Keep It Simple, prefer simple over clever
4. **YAGNI** - You Aren't Gonna Need It, implement only what's needed
5. **Clean Code** - Meaningful names, small functions, proper error handling
