Front End System Design Interview - Applications
Find the latest version of this page on GreatFrontEnd's Front End System Design Questions.
Examples
- News feed (e.g. Facebook) (Free)
- E-commerce marketplace (e.g. Amazon) (Paid)
- Chat application (e.g. Messenger) (Paid)
- Photo sharing application (e.g. Instagram) (Paid)
- Pinterest (Paid)
- Collaborative editor (e.g. Google docs) (Paid)
- Travel booking website (e.g. Airbnb) (Paid)
- Video streaming (e.g. Netflix) (Paid)
- Email client (e.g. Microsoft Outlook) (Paid)
Framework
In system design interviews, candidates are supposed to lead the conversation. Here's a framework you can use to give an outline to the interviewer as to what you are going to cover (not necessarily in that order). The framework is called RADIO and it is made up of the first character of each aspect.
- Requirements exploration
- Architecture
- Data model
- Interface definition (API)
- Optimizations and deep dive
- User experience (UX)
- Performance
- Accessibility (a11y)
- Internationalization (i18n)
- Multi-device support
- Security
Requirements exploration
Every system design interview should start with clarifying requirements about the question, which is usually left vague intentionally. Some considerations:
- What devices should the system support? Desktop web, mobile web, etc
- What's the primary device that users will access the system on?
- Which browsers should we support?
- Do we need to support internationalization?
- Does the app need to work offline?
Architecture / High-level design
Architecture for front end interviews are typically focused on the client-side architecture, and not on large scale distributed systems where databases, load balancers and servers are involved.
For applications, common architectures include Model-View-Controller, Model-View-ViewModel, Flux, N-tier (where data tier is on the client) etc.