Live data from Hacker News

Ask HN: What is best way to do hands-on practice for system design?

news.ycombinator.com

81–90 of 98 posts

Re: Ask HN: What is best way to do hands-on practice for system design?

#83

Hmm. I think you might be getting at two different questions. One: How do you get better at systems design? Build stuff -- lots of stuff. If you're interested in designing particular kinds of systems (say, planet-scale web services...), then get a job at a company that does that kind of thing. Two: How do you get better at systems design interviews ? That's much easier; you can just throw money at the problem. Use on…

[deleted]

Re: Ask HN: What is best way to do hands-on practice for system design?

#84

Hmm. I think you might be getting at two different questions. One: How do you get better at systems design? Build stuff -- lots of stuff. If you're interested in designing particular kinds of systems (say, planet-scale web services...), then get a job at a company that does that kind of thing. Two: How do you get better at systems design interviews ? That's much easier; you can just throw money at the problem. Use on…

Most people can't casually throw away 10k to get better at interviewing...

I'd say for us non-wealthy mortals, the best approach is to find another engineer who will conduct mocks for you. Short of that, maybe do one or two paid mocks to calibrate yourself, then practice on your own.

The sad fact is the "system design interview" is not really like actual system design at all. It's more about following a specific format that everyone expects and knowing the ideal solution up front.

Re: Ask HN: What is best way to do hands-on practice for system design?

#85
post #24

Earlier quoted context omitted.

And I would add : 3. Not being specific about any technologies. Instead of using a "SQL Database" and a "cache", just say "PostgreSQL" and "Redis". It's an interview, if you're not specific, I will start thinking you don't have any experience with Redis or Postgres. If you really don't have any, I will find out anyway.

All these differing opinions on this tells me interviews are a crapshoot subject to the interviewer's whims. If I got you for an interviewer I would need to be specific, for others who replied to this, I'd need to be generic. Hopefully the interviewer is helpful in this regards and indicates his preference, maybe by asking what cache would you use and why instead of silently docking me points.

I loathe secret requirements in interviews and am up-front and explicit about what I'm looking for. Even with that guardrail though, lots of folks don't answer the questions I'm asking. So I guess a more general piece of advice would be: listen to the interviewer, listen to the question, and answer the question that was asked.

(This is the same advice I give people when I'm coaching them for FAA oral exams, incidentally. People really have a hard time listening to a question and answering the actual question.)

Re: Ask HN: What is best way to do hands-on practice for system design?

#86
post #55

You learn large scale system design via real world application, being in the room when it happens, and from closely working with folks who are already practicing it. This kind of work is sometimes as much art as it is science, highly specific to the situation at hand and requirements of the system to be designed. It absolutely bothers me that the resources out there are few and far between. It is hard to change that.…

The only way I learned was the "main guy" flipped off management and walked out. You start learning real fast. "WTF IS PXE BOOT. Session vms aren't booting. Oh jesus, JEFF! HA_ERR_KEY_NOT_FOUND people can't login ". I couldn't learn anything otherwise due to nerves, PR gating and risks of catastrophic failure. But, when I was the only person left, let's roll it. PR approved!

Same thing happened to me! Entire career is based on a guy leaving, and being forced to use history commands to learn everything. lol.

Re: Ask HN: What is best way to do hands-on practice for system design?

#87
post #24

Earlier quoted context omitted.

And I would add : 3. Not being specific about any technologies. Instead of using a "SQL Database" and a "cache", just say "PostgreSQL" and "Redis". It's an interview, if you're not specific, I will start thinking you don't have any experience with Redis or Postgres. If you really don't have any, I will find out anyway.

I would advise against it. Two reasons: - if the person interviewing you know the specific tech you picked, you give them an opening to control the interview. They can go anywhere they want and you would likely fall short unless you know the stack in&out - when you pick specific technology, you also have to defend why this one specifically. For ex, why redis and not memcache or why only postgres and not redshift.. If…

I interviewed someone who put an Amazon AWS product in every box on their design and was unable to explain how each would solve a particular problem except "Amazon product X solves this for us". No abstract thinking.

Strong no.

Re: Ask HN: What is best way to do hands-on practice for system design?

#88
post #76
post #72

Earlier quoted context omitted.

What is layer 8?

They must've meant Layer 7 / Application Layer. There is no Layer 8 in OSI model (unless they're talking about a different model)

I did mean Layer 7. I've been calling it Layer 8 for a long time now, lmao. Not sure how that got mixed up and made permanent.

Re: Ask HN: What is best way to do hands-on practice for system design?

#89
Grokking the System Design Interview is a good overview of the available templates/patterns/solutions. After that, block off 60 minutes with a whiteboard and ask yourself "How would I build $EXISTING_SERVICE from scratch?" Repeat regularly.

Re: Ask HN: What is best way to do hands-on practice for system design?

#90
System design is very easy because you're always inheriting a prior design that exists in actuality or borrowing from a model. Just make sure the new design lowers cost, reduces complexity, improves security, and/or unlocks potential value. ;)

The best way to get hands-on practice is to do just that. The tech part of system design is nothing; it's dealing with an organization and its myriad biases, politics, and reservations that'll teach you the most about the practice.

Post reply on HN