How to Avoid Accidental Complexity in Software Design | Hacker News Reader