Hacker News new | ask | show | jobs
by ddimitrov 356 days ago
I've failed system design interview where they repeatedly asked me to design "for scale" but all the volume and latency requirements I could get from them could be handled by a single HA pair running a monolithic server+ external managed data store.

They also seemed annoyed that I am asking them questions that are not part of the problem statement instead of getting down to drawing a fancy diagram.

I'm sure they hired someone who drew a lot of boxes with cute logos because webscale.

3 comments

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.

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.
> I've failed system design interview where they repeatedly asked me to design "for scale" but all the volume and latency requirements I could get from them could be handled by a single HA pair running a monolithic server+ external managed data store.

It's nice that you estimated throughputs and provided your assessment. Odds are that's not the problem you were tasked to solve?

I mean, arguing your way out of proposing a design for scale reads as if you're at a test and you're claiming you shouldn't be asked some questions.

> They also seemed annoyed that I am asking them questions that are not part of the problem statement instead of getting down to drawing a fancy diagram.

Clarifying questions are an expected part of the process, but by it's own nature the design process is iterative and has a initial design on where to iterate over. If you do not show forward progress or present any tangible design, your own system design skills are immediately called into question as, in the very least, it shows you're succumbing to analysis paralysis.

Think about it: you're presented with a problem, and your contribution is to complain about the problem instead of actually offering a solution? What do you think is the output valued by interviewers?

Regurgitation what amounts to ai slop these days paints a clear picture of your Company to the market. Companies that use l33tcode are filtering out pools of talent, in exchange for monocultures of echo chambers. Makes it easier swing the layoff ax when they need to posture to the market differently.

The fact that this ^^^ is run by AI shows just how irrelevant technical interviews like this are these days. Why take a closed book test for a job that you never have to work a day in your life with the book closed?

If you are an experienced dev, u can rank other devs pretty quickly with a general conversation about any technology.

> Companies that use l33tcode are filtering out pools of talent, in exchange for monocultures of echo chambers.

Please explain why do you believe that not moving forward with a candidate who fails basic coding challenges leads to "monocultures of echo chambers".

> The fact that this ^^^ is run by AI shows just how irrelevant technical interviews like this are these days. Why take a closed book test for a job that you never have to work a day in your life with the book closed?

You're trying to fabricate scenarios that never applied. There are no "book closed" exams, and no company hires developers on hard skills alone.

> If you are an experienced dev, u can rank other devs pretty quickly with a general conversation about any technology.

No. No, you don't. You think you can, but you're just deluding yourself. You have no idea if your personal biases got your best candidate rejected, or if your pick just is a top of the barrel candidate who enchanted you with buzzword lingo? This is a fact, and I've seen this play out in real life. I've seen team leads succumb to this sort of delusion and ehen they realize they hired smooth-talking scrubs that need constant help from junior devs to unblock themselves, you start to hear excuses such as "he was given an opportunity but squandered it". This is something that negatively impacts everyone involved.