Thinking clearly about software design | Hacker News Reader