Frontend System Design Handbook: Interview Checklist & Style Guide
Frontend System Design Handbook: Interview Checklist & Style Guide
https://github.com/devkodeio/frontend-system-design
High Level Design
Product Requirement Document (PRD) / Design Documen*
Identify Scope/Requiremen
Review your understanding with stakeholders
Identify API
Rest APIs / Graph APIs / RPF
JSON / Protocol buffers
https://github.com/devkodeio/frontend-system-design
Identify Right Platform (compare frameworks based on the use case!
' Single Page Applications (Unsuitable for Blogs/News based products)
- No SE
' Multi Page Applications
- Better SE
' Important points to discuss:
- Is SEO needed?
- Is SPA enough?
' Artifacts tracking (ex: ConfluenceZ Experiment flag, which can help in the
' Rollback & backup mechanisms release cycle.
https://github.com/devkodeio/frontend-system-design
Volume of Operation
2 Discuss about the end users of the produc
2 Identify QPS (Queries per second
2 Discuss about Load testing/Stress testin
2 Inject analytics in application (ex: Google analytics, Sentry, NewRelic
2 Analytics data helps us to scale the system
State Managemen(
2 How to maintain state through the application
2 How to manage users' data
2 State management Libraries (Redux, Flux, NgRX)
Handling API
2 Polling (Short and Long
2 Web Sockets (Real-time) (ex: chat, shared editors
2 Batch request+
2 GraphQ×
2 Caching GET APIs (Middleware concepts to cache response
2 Server-Sent Events (SSE)
https://github.com/devkodeio/frontend-system-design
Optimizing Image%
Add alt attributes (Images should be descriptive for SEO
Load images based on screen size (img srcset
Image compression (ex: JPEG 2000
Image sitemap.
Use SVGs for generic dimensions (in case of stretching of images
Discuss about image Sprites for icon.
Discuss about progressive images (ex: Medium.com)
Instrumentatioc
Measurement and tracking are key for a stable syste[
MonitorinI
Error logging (for tracing
DebugginI
Logs/Track all events happened in the applicatioS
Implement Analytics (GA
Sentry (to capture errors
Newrelic (to detect failures)
Performance Optimization Technique%
Webpack to optimized/compressed pages (Code splitting
Web Vitals (FP, LCP, CLS, etc
Lighthouse / PageSpeed Insight.
Fast Loading (Initial load should be fast
Smooth Operations (Loading indicators / Light/Smooth/Meaningful animations
(to avoid jerks in transitions) / Splash screens) - (dialog with light animations
Animation directions should be the same (dialog coming from bottom should
close in bottom) - (smooth animation should be added in sidebars for better UX
Animation between data fetching(APIs request
Discuss about Caching - ex: API, resource cache (Browser cache / Memory / CDN
/ Disk Cache
Pagination vs Infinite Scrol
Meaningful animatioS
Micro interactions
o ernanc1
G v
Controlling the workflows and protecting the asset.
UX Design -> Developers -> Product Managers -> UX Designing -> Q
Code level governance - like PRs approval (sets standard in your team
Artifacts/Assets level governance (before go live)
Accessibilitd
Alt attribute6 Multi-device support, slow network speeQ
Aria-labels Color contrast, semantics tags
Securitd
MITY Clickjackino
XSa Content Security Policy (CSPh
CSRF CORS
This document is based on the knowledge and experience of the team Devkode.
This document is intended to help frontend developers to approach the system design in
the interviews or to build a real-time project.
devK de
This is document can be considered as a style guide and is not exhaustive.
https://github.com/devkodeio/frontend-system-design