1. What variables are needed?
  2. How many loops and what kind?
  3. Any built-in methods that can help?
  4. What edge cases?
  5. Can helper functions be extracted or abstracted?
  6. As input grows, how will functions perform?
  7. Should there be some kind of caching mechanism?
  8. How much memory should be sacrificed for performance gains?
  9. Can you curry to deparametrize?
  10. Can you keep functions pure?