Hacker News new | ask | show | jobs
by danpalmer 361 days ago
Latency and volume aren't the only requirements, perhaps you failed to discover the other requirements of the system?

- In a fast system most of the latency will come from geographical distance, an HA pair can't serve the whole world with low latency.

- How do you handle new releases? You can do HA with 2 machines, or you can do safe rollouts with blue/green machines, but you can't do HA and safe rollouts with just 2 machines.

- What if you want to test a new release with 1% of traffic? 100 small machines might be preferable to 1 big machine, or 10 medium machines each running 10 instances, or whatever.

- What does the failover look like?

- You use an "external managed data store", but often the tricky bit is the data store. Externalising this may be the most practical option, but it doesn't communicate that you know how it needs to function.

Alternatively this might have just been a bad interview. Many are.

2 comments

From reading your response it suggest me the riddridiculousness of the System Design interviews. Are folks are supposed to design a planetary scale system in <1 hours?
> From reading your response it suggest me the riddridiculousness of the System Design interviews. Are folks are supposed to design a planetary scale system in <1 hours?

No, they are expected to be presented with a set of requirements and present a solution that loosely meets them. That is used as a backdrop to ask technical questions and see how a person collaborates.

Yes, I would expect people to be able to discuss all of this and more, with trade-offs, in 1 hour. I'm not expecting any code, I'm only expecting a box diagram at best, and it won't be a finished design, but the whole point of system design is being able to come up with designs to meet exactly this sort of thing.
The interviewer was clearly annoyed at my questions, it was not that I didn't discuss the right things, it was that I asked too much and drew too little.
You forgot to design a new energy grid, in case a freak solar flare knocks out most of the world's grids. How can you deliver at scale if there is no scale?

What about new tax policy to encourage people having more children? How can you deliver at scale if the scale is shrinking?

Really, you should think of all factors..

The difference of course being that I deal with the issues I listed on a daily basis and would interview for it, while I have yet to deal with solar flares, tax policy, etc in my role as a software engineer.