Facebook Product Design vs System Design
Anonymous User
2290

Can someone really explain how Product Design interview differs from traditional System Design interview?

I have gone through https://www.facebook.com/careers/life/preparing-for-your-software-engineering-interview-at-facebook and also looked at many old posts on this topic on LeetCode.

What I have surmised so far is that:

  • Product Design interview is primarily about API design
  • Focus areas: APIs, data model, client-server architecture, extensibility for future use cases

Does scope of the interview also cover one or more of the following topics and if yes, to what extent:

  • UI/UX, how user is going to interact with it
  • Client side optimizations (web vs mobile)
  • OOD and design patterns
  • REST, RPC, SOAP
  • Back-of-the-envelope calculations (number of requests, servers or memory)
  • Authentication, authorization or security
  • High level architecture
  • Details of each component/service
  • Choosing the right data store
  • Database partitioning, replication
  • Caching (Redis, CDN)
  • Scalability (Horizontal/verical scaling, Load balancers, Message queues, Async processing etc)
  • Networking (TCP, UDP, DNS)
  • Availablility and reliability (dealing with failures)
  • CAP theorem

Talking about APIs and data model alone should not take more than 30 mins. What do you do in the remaining time?

What all areas is a candidate really expected to cover? Can people who have appeared in Facebook Product Design interview please shed some light on this? Or people who work at Facebook or have reliable knowledge?

Also, it'd be immensely helpful if someone could share any prep material that contains API design examples for common interview problems (design Instagram, Uber etc).

Comments (3)