System Design Interview (Build Instagram)
A System Design interview with a FAANG engineer
Interview Summary
Problem type: Image Filter Service
Interview question: Create a service that allows users to upload an image and apply filters and then sends users a link to download their filtered image
Interview Feedback
Feedback about Nihilistic Hawk (the interviewee)
- Advance this person to the next round? No
- How were their technical skills? 2/4
- How was their problem-solving ability? 2/4
- What about their communication ability? 3/4
As mentioned in the call. The passing for this interview would depend on the level you are applying for. If you were applying to mid-level, I would change the rating above from "No" to "Yes" and the stars to be 3/4 instead of 2/4. So my rating above is based on the fact that you are applying for a senior position.
Here is the framework you can use for asking questions:
- Tactical group. Answers the "why" question.
- Strategic group (on project level), answers "what" questions like: should I build MVP? Should I target extendability? Etc
- Operational group: answers "how" questions like scaling, data center locations, etc
Feedback about The Inimitable Thunderstorm (the interviewer)
- Would you want to work with this person? Yes
- How excited would you be to work with them? 3/4
- How good were the questions? 4/4
- How helpful was your interviewer in guiding you to the solution(s)? 4/4
Interview Transcript
The Inimitable Thunderstorm: Hello.
Nihilistic Hawk: Hello.
... (Conversation goes on regarding the interview and discussion about image processing service)
The Inimitable Thunderstorm: ...So let's talk about the image. Upload service. So going back to single responsibility principle, this is just uploading images. So talk to the database. And then, you know, persist that information there and send it off to the filter service.
... (Further details on system design and how to handle user uploads, filter selections etc.)
Design Requirements
- User uploads an image.
- System applies selected filters.
- User receives notification via email or push with a download link.
- Filters can be added by administrators.
- Store images for up to three months.
Non-Functional Requirements
- System should handle 10 million daily active users.
- 150,000 requests per second.
Considerations
- What type of data storage will be used?
- Scalability of services.
- Load balancing and storm management.
Conclusion
This interview emphasized the importance of articulating thoughts clearly, asking relevant questions, and being aware of non-functional requirements. This will help in designing a scalable and robust service.