Product Design vs Systems Design interview at FB. Looking for study / prep suggestions

I was given a choice by my FB recruiter between product design vs systems design intervew. After a few engineers looked at my resume, they said I'd be better suited for the product design interview.

The problem I'm having is what is a product design interview? Example questions, study material / resources? Scouring the web and I can't find anything. I've talked to the recruiter and an engineer at FB and I pasted the response below. Decent response, but I'm still not feeling good about figuring out what to focus my studies on. Any guidance or resources or example problems you may suspect or have encountered would be very helpful. Thanks.

If it doesn't help you help me, maybe their response will help someone else facing the same interview.

From Facebook:

The Product Design interview typically focuses on the more holistic parts of building a software solution and less on the back end components required.

This type of design interview will spend a significant amount of time focusing on a good API. The base expectation is that you consider the product needs and design the API to cater to the specific problem you're working on. A good design will provide a way to extend the API as the product evolves, and also be self-contained such that it is clear that some production changes might require a new API to be built.

You should be able to talk about enabling an efficient interaction between the product running on a client and the server. Do API calls require a single round trip between the client and the server or multiple round trips? If the product is latency sensitive, discuss caching and how that might help. What are the shortfalls of caching, for example, the client might need to store state on the device, which then needs to be secured and managed, or the server might need a good invalidation strategy in case the cache is inconsistent.

If you have client-side experience you should be able to talk about how you handle user interactions like scrolling, page refreshes etc. You will also want talk about how you can improve user experience by masking latency for server interactions by tweaking the client.

*It is important that the you think about how your API or product design is used. What metrics or usage experiences do you want to capture to understand how well your system is doing.

Comments (4)