15 ms·
Sure thing. I'm interviewing for "senior software engineering" roles: full-stack, approximately 3-5 years out of school. To clarify, they specifically ask abou
by sbuccini 6y ago
Sure thing. I'm interviewing for "senior software engineering" roles: full-stack, approximately 3-5 years out of school.
To clarify, they specifically ask about the Instagram feed.
Basic answer goes like this:
v0: Webserver handling requests talking to a relational DB. Return feed via ORDER BY created_at DESC;
v1: introduce CDNs to host image files closer to the client.
v2: pre-compute user's feeds and store them in a NoSQL table.
Where I struggle:
* Solving the "push" vs "pull" aspect. v2 doesn't work well for influencers with huge follower counts. How to handle this case? I suggested a blended approach but didn't have many ideas on how to knit them together.
* Would you still pre-compute the feeds even if people haven't logged in for a long period of time? I said we could bucket users into different categories of usage via an offline job and re-fresh their feeds on different cadences and store them in different levels of caching.
Curious to hear how I can add more detail and extend my solution!