I use a framework called RADIO to structure the conversation. RADIO stands for:
- Requirements
- Architecture
- Data model
- Interface (the API)
- Optimisations
It stops me from jumping straight into components. It also makes sure I cover the parts that interviewers score.
Here is a rough time split:
- Requirements, 5 to 8 minutes: I agree on the scope with the interviewer and write it down.
- Architecture, about 10 minutes: I draw the main components. I show how data flows between the server, a client cache and the views.
- Data model, about 5 minutes: I list which entities live on the client. I separate server state (data that comes from the server) from UI state (data that only the screen owns).
- Interface, about 8 minutes: I describe the endpoints or queries, the pagination, and the props of the key components.
- Optimisations, the remaining 15 minutes: I discuss trade-offs in performance, accessibility, i18n (support for many languages), offline use and error handling. This is where seniority shows.
I check in with the interviewer at each change of step. This lets them steer me toward the area they care about.
- Names a framework such as RADIO and follows it through the interview.
- Spends real time on requirements before drawing anything.
- Leaves the largest block of time for optimisations and trade-offs.
- Checks in with the interviewer at each step.
Read more
- patterns.dev (https://www.patterns.dev/)patterns.dev