Cracking Front End System Design Interviews: Chakde System Design Series

Jul 5, 2024

Chakde System Design Series - Episode on Cracking Front End System Design Interviews

Speaker: Chirag Goel

Introduction

  • Focus: How to crack front end system design interviews
  • Topics covered: HLDs, LLDs, tech stack, performance discussions, functional and non-functional requirements, component architecture, implementation details
  • Company-specific system design interview differences (Flipkart, Uber, Google, Microsoft)
  • Tools and mantras for cracking system design rounds

Case Study: Motu Bhai's Business

  • Motu Bhai's offline business sees competitors moving online
  • Decides to create an app and website, sets up a tech team
  • Importance of system design knowledge for senior developers
  • Different types of system design rounds explained to Motu Bhai

Important System Design Aspects

  • Requirement Gathering: Functional and non-functional requirements
  • Scoping and Prioritization: Prioritize MVP, tech choices, component architecture, implementation details
  • Performance: Discuss internet speed, localization, user devices, accessibility, asset optimization, logging and monitoring, A/B testing, unit testing, internationalization, versioning, PWA, CI/CD pipeline

System Design Questions

  • Open-ended questions: Building applications like Flipkart, WhatsApp, Instagram
  • Functional Requirements: Discuss demand and supply side, module-level thinking, user management, help and support, payment gateway, pricing, cart page, account management
  • Non-functional Requirements: Mobile vs. desktop, responsive vs. adaptive design, internet speed, device types, accessibility, asset optimization

Tech Stack and Component Architecture

  • Tech Choices:
    • Libraries and frameworks (e.g., React)
    • State management (e.g., Redux, context)
    • Folder structure
    • Packages (mono repo vs. micro front end)
    • Dependencies (e.g., drag-and-drop, analytics)
    • Design system (e.g., Material Design, Ant Design)
    • Build tools (e.g., Webpack, Rollup)
  • Component Architecture:
    • Component hierarchy
    • Routing and state management
    • Data sharing and caching
    • Breaking down components for reusability

Data APIs and Implementation

  • Protocols: REST, GraphQL, SSE, gRPC
  • Response Types: JSON, Protocol Buffers
  • Implementation Details:
    • Pagination
    • Infinite scroll (throttling, intersection observer)
    • Debouncing for search
    • Abort controllers
    • Listing essential APIs
  • Data Modeling: Request/response structure, error handling, status codes
  • Component APIs: Event handling, customization, usability, state management

HLD vs. LLD

  • High-Level Design (HLD): Requirements, scoping, tech choices, component architecture, data API and implementation overview
  • Low-Level Design (LLD): Granular implementation details, building specific functionalities (e.g., auto-complete, chat application)
  • Senior positions focus more on HLD; junior and mid-level focus more on LLD

Company-Specific Rounds

  • System Design Round: Comprehensive coverage (e.g., Microsoft)
  • Product Sense Round: Business, product management, UX perspective (e.g., Flipkart)
  • UI Architecture: Usability, tech choices, component architecture (e.g., Uber)
  • Machine Coding/Component Design: Low-level design, implement specific functionalities

Tools for System Design Interviews

  • Online tools for drawing flow diagrams: draw.io, gliffy.com, Lucidchart, miro.com, OneNote, Zenboard
  • Importance of familiarity with these tools for productivity

Mantras for Cracking System Design Interviews

  • Don’t be like Pushpa: Understand the expectations
  • Keep talking during the interview
  • Don’t rush into implementation
  • Pick one problem at a time
  • Familiarize yourself with tools
  • Practice system design problems
  • Keep iterating and refining your approach

Conclusion

  • Importance of discussing and refining approaches
  • Invite feedback on specific system design and mock interview topics for future episodes
  • Encourage viewers to like, share, subscribe

Thank you for watching the Chakde System Design series. See you in the next episode!