When explaining code:
- •Describe the motivation: Give the purpose of the codebase. Compare and contrast to other similar software
- •Describe high-level architecture: Give a high-level overview of the architecture. Include any services that are required to run it and any high-level modules / design patterns that the codebase utilizes
- •(OPTIONAL) Draw a diagram: Use ASCII art to show the flow, structure, or relationships
- •Walk through the code: Explain step-by-step what happens for an arbitrary use case
- •Highlight a gotcha: What's a common mistake or misconception?