Live data from Hacker News

Algorithms you should know before you take system design interviews

blog.bytebytego.com

21–30 of 82 posts

Re: Algorithms you should know before you take system design interviews

#21
post #7
post #2

Several interesting algorithms, but why a picture of a table instead of a table?

Because Substack. Same thing with Medium articles. Never used either of these platforms, but surely they allow custom HTML?

> but surely they allow custom HTML?

Definitely not. If they did then articles would no longer be reliable. People wouldn’t write custom HTML that renders correctly in all browsers for all devices.

Re: Algorithms you should know before you take system design interviews

#22
post #13

I was expecting to see idempotent consumer, circuit breaker, and a few others that I’ve used frequently when designing systems. Maybe not interesting enough to make the list?

These are more "patterns" than "algorithms"...

Is there a place where you can see a list of system design patterns and their use cases?

Re: Algorithms you should know before you take system design interviews

#23

Having done several system design interviews, most of the time they're badly executed. When I asked for some detailed requirements they cannot disclosure them. However in the end they have those hidden requirements and I've failed because my system doesn't meet those requirements. It's a bad way to conduct a system design interview by having a design in mind and hoping the candidates will reach that with limited know…

I interviewed for a company once where I got a real dataset from their business and just a vague assignment to analyze the data and find something that could be optimized better. So I came up with a suggestion on how to improve factor A, but they told me later that what they were looking for was for the candidates to come up with suggestions on how to improve factor B.

Why factor B was deemed more important than factor A wasn’t something that possibly could have been understood from the dataset alone.

Re: Algorithms you should know before you take system design interviews

#24
post #20

Having done several system design interviews, most of the time they're badly executed. When I asked for some detailed requirements they cannot disclosure them. However in the end they have those hidden requirements and I've failed because my system doesn't meet those requirements. It's a bad way to conduct a system design interview by having a design in mind and hoping the candidates will reach that with limited know…

My solution is to produce a design in my head, and figure out its limitations. Then I ask for each limitation if this limitation will be a problem. If it is, then I figure out how to iterate the design to eliminate that limitation. Once I don't know of any unverified limits, then I start explaining my design, and explain how I know it will perform to spec. This is also a good way to approach system design in the real…

Only if the interviewer cooperates with candidate. In my past cases, some interviewers are just nuh-uh or "let's continue" or just keep saying the original ambiguous requirement without stating additional requirements or giving any feedback.

Re: Algorithms you should know before you take system design interviews

#25
post #5

I feel that if more interviews involved this sort of algorithm instead of the ultra-niche / only situationally useful, there would be way less opposition and much more signal. At work, I have written and then used a bunch of these in production, just for the narrow scope of things I work on. Might be indicative of me being in a bubble though. Please, ask me to make a bloom filter or show how consistent hashing enable…

TBH reversing a string is probably harder than the others if you consider how strange unicode is.

Re: Algorithms you should know before you take system design interviews

#29
This is kind of crap listicle.

From the title to the content, it's just bad.

A system design interview doesn't ask you algorithms. They're basically block diagrams. They're often the interview with the highest variance, because a successful one requires the interviewer to ask not only a fair question (e.g. isn't niche to their current job), but also recognize when a solution works, but isn't their implementation. This doesn't require any knowledge about algorithms beyond what types of algorithms exist. That's pretty much it. It's also the hardest to prepare for, because you could be asked pretty much anything, and there aren't very many medium level design docs out there for complex internet scale systems.

Now an algorithm design or coding interview will ask you to develop an algorithm with level of implementation, but if you not memorizing an algorithm is going to sink you, then you have crappy interviewer and shouldn't take the job anyway. A good interviewer doesn't want you to simply come in and spout out memorized factoids, they want you to develop it. A good interviewer will recognize that you memorized the answer, and ask a different question until you don't know it. Only then, will the interview be useful.

Everyone should get the solution by the end. It's just how many, and how explicit of hints you need.

The list of algorithms is a complete grab bag of random stuff. There's nothing tying them together.

Re: Algorithms you should know before you take system design interviews

#30
post #5

I feel that if more interviews involved this sort of algorithm instead of the ultra-niche / only situationally useful, there would be way less opposition and much more signal. At work, I have written and then used a bunch of these in production, just for the narrow scope of things I work on. Might be indicative of me being in a bubble though. Please, ask me to make a bloom filter or show how consistent hashing enable…

TBH reversing a string is probably harder than the others if you consider how strange unicode is.

str.insert("\u200F", 0).append("\u200E");

Next question. :)

Post reply on HN