Thinking like a developer