Hacker News new | ask | show | jobs
by lepunk 3437 days ago
I normally go with: "If you could do it from scratch how would you implement the infrastructure of X"

X being a currently widely known service (I'm usually going with Spotify). There is no "right answer" to this question but this shows you how the candidate thinks and how well they can protect their opinion if challenged

6 comments

I think this is a good question, but that it falls prey to the same conceit that befalls those who claim they could "build Twitter in a weekend". A picture-perfect sketch of a system can illustrate one's knowledge of patterns and off-the-shelf solutions, but it won't cover the things that get in the way of a team building their way towards product/market fit.

You could lead with this question and then jump in with hypothetical roadblocks to see how the candidate reacts.

Ex:

- "A network of microservices _would_ be a clean way to implement this. How would you foresee the operational burden of this impacting a small team?" - "Imagine that you build this and it works well, but the product it powers ends up not resonating with customers. The team now wants to pivot to X. What changes would you make to the system to address this new problem space?"

> it falls prey to the same conceit that befalls those who claim they could "build Twitter in a weekend"

A good answer would account for the fact that our initial approach to big projects tends to differ quite a bit from what the the end result is. Agility of architectural design is generally underrated in my experience.

Do you first ask them if they have personally used the service X first or you assume they know and have used it because it is "widely known"?
I like questions like this, but I always give an explanation what the service is, in case the person freezes up in an interview situation.
A great "how would you architect X" is Uber. Lot's of hidden complexity.
This sounds like a fun question, and seems interesting and engaging for both the interviewer and the interviewee.
One of the fun things about these questions as an interviewer is all the answers end up a little different, so you end up learning something. While that's not the prime goal, it is nice if a candidate uses it to teach you something :)
This is a very good one, my default is usually Instagram
What would be a good answer for this type of question?
I would think that a good answer showcases your knowledge. E.g. if you knew a lot about relational databases, this is a time to apply the knowledge.

It's also good if you show the ability to see trade-offs where they exist. E.g. the trade-offs for a relational database vs. something else might be familiarity / time to implement, vs. ease solving some type of situational performance problem.