Interview with a FAANG engineer.
An Interview with a FAANG engineer
Interview Summary
Problem type
RSS News Feed
Interview question
Design an RSS News Feed
Requirements:
- User can login to the app
- Pick favorite news source - 10 news sites to subscribe
- Customize newsfeed
- Edit/delete any subscription
Interview Feedback
Feedback about Aerodynamic Tornado (the interviewee)
- Advance this person to the next round?
No - How were their technical skills?
3/4 - How was their problem solving ability?
4/4 - What about their communication ability?
3/4N/A
Feedback about Adequate Goose (the interviewer)
- Would you want to work with this person?
Yes - How excited would you be to work with them?
4/4 - How good were the questions?
4/4 - How helpful was your interviewer in guiding you to the solution(s)?
4/4Very good interview experience. Just one note, if we connect again, I would appreciate if you be "more strict" with me, maybe give less hints so I can practice leading the conversations more :)
Interview Transcript
Adequate Goose: We can get started. Would you like to tell me a bit more about your background and what you do?
Aerodynamic Tornado: Yeah, sure. Are you able to hear me still?
Adequate Goose: Yes, I am speaking to you.
Aerodynamic Tornado: Okay. Yeah.
...
Aerodynamic Tornado:
Okay, so just trying to understand the question here. So we are trying to design the RSS feed which is similar to the link that you shared, is that correct?
Adequate Goose: The link that I shared is just to give you an example of what the RSS feed looks like, right? That's an example of what RSS feed is and when you are thinking of designing it, we can discuss right. What kind of application are we trying to design? Is it mobile based, browser based and so on.
Aerodynamic Tornado: Okay, so the user so there is an RSS feed URL that the user selects and then they are selecting. So this can be like is this going to a point like on a browser or a mobile app or.
Adequate Goose: Tablet? Yeah, sorry, I didn't clarify that. Sorry.
...
Aerodynamic Tornado:
Okay, and then user can also edit or delete any subscription. But they need to have at least ten subscriptions. Okay?
Adequate Goose: Yeah. So I can clarify your question about what that link should look like.
...
Aerodynamic Tornado: Okay, so let me just rephrase them. New seed refresh periodically and then like we said, your push or pull method and then when the user clicks on the news it should load the title, the images and other details related to the news.
...
From the design perspective, we have a UI that interacts with an API layer to fetch news articles, which are managed in a relational database. Each news article will have associated metadata such as title, media content, and more. A caching layer ensures faster retrieval of frequently accessed articles, and we employ an event-driven architecture to maintain responsiveness and availability.
Metrics for Monitoring
- Availability - Track service uptime and health metrics such as CPU and memory usage.
- Latency - Monitor mean time to response for API calls and news feed generation.
- Resource Utilization - Measure resource usage to identify bottlenecks.
Additional Notes
- Future considerations would include implementing caching strategies, metrics for performance alerts, and scaling solutions such as horizontal sharding for the database.