Issue with system design is that our industry is so highly opinionated about things. You design something to the best of your abilities, it works (though may have its pros and cons) and then you go present it to a crowd of engineers (HN, say) ... and you get destroyed. There will always be people telling you that these were dumb choices and that that's obvious. And if you go and do what they say is the obviously bett…
A senior engineer's guide to the system design interview
331–340 of 399 posts
Re: A senior engineer's guide to the system design interview
#332Most real life problems don't get solved by adding queues and moving to an event driven architecture with thousands of micro-services.
What I'd expect from a senior engineer is deep technical understanding of how a queue works (epoll, poll, io multiplexing, io non blocking, readiness) for example.
Re: A senior engineer's guide to the system design interview
#333Earlier quoted context omitted.
> The purpose of the system design interview is to convince me that you could build, or lead a team to build, the thing that we are discussing at a company like the one where you are interviewing. I feel like I can easily see through interview practice or coaching, so I don't recommend spending more than an hour or so "preparing" for system design interviews. Unless you are interviewing somewhere with very inexperien…
> I just didn't know how you're supposed to approach the question. For your example, I would ask them to define what scale we were operating in, and what the footprint would be, etc. Then you could start off with a more complex design (which seems like what the interviewer wanted.)
Re: A senior engineer's guide to the system design interview
#334Earlier quoted context omitted.
There have to be parts of what you work on that are not covered by NDA. Solving problems like this would be indicative of someone we would want on our team.
When I worked at Apple they made it abundantly clear that EVERYTHING was under NDA. Even things like “what version of the standard library do you use”. Or “what are computers for”. And that any minuscule transgression of the NDA would result in me Being immediately deported, divorced, and likely put in front of a firing squad.
Re: A senior engineer's guide to the system design interview
#335Earlier quoted context omitted.
There have to be parts of what you work on that are not covered by NDA. Solving problems like this would be indicative of someone we would want on our team.
The problem you're asking them to solve is a legal one, but you are not interviewing lawyers. I have never worked for a single employer that didn't require an NDA, and the NDAs are always written in a way that can be easily interpreted as "do not tell anyone anything about what you do here".
Re: A senior engineer's guide to the system design interview
#336Earlier quoted context omitted.
There’s no place where we are asking you to diagram the system that you’re working on. We ask you to diagram a system you understand well. Are you using messages queues, container orchestration, network components, cloud infrastructure, Java/rust/go/Python/etc.? Tell me about one of those components and how they connect together in theory vs the specifics of your system. Everyone who works in technology works with, m…
I worked at apple in the past. It would be a violation to answer your questions.
Re: A senior engineer's guide to the system design interview
#337Earlier quoted context omitted.
I literally can't diagram 90% of the stacks I've worked on in the last 8 years because they're highly NDA.
So draw the block diagram of something you worked on in school. Or, I don't know, a radio or something, if you're a hardware person. Someone who answers, "I can't draw anything for you because everything I know about is somebody's private IP," isn't going to get the job. At least, not if I'm doing the interviewing. You must know something about something else. Right?
Re: A senior engineer's guide to the system design interview
#338We've gone away from system design interview questions on my team. We ask people to diagram something technical they understand well and the team digs in and asks questions to understand depth and breadth of the candidates understanding. For us it works much better. It's a chance to see how well candidates do in following instructions. It gives you a chance to explore depth and breadth of their knowledge on something…
How many rounds of interviews do you typically do? What other interviews if any? Curious what good orgs are doing in this regard!
Re: A senior engineer's guide to the system design interview
#339Earlier quoted context omitted.
hmm interesting approach, really like it. Where do you work? and are you hiring now?
I would also like to know these things. This sounds like a type of interview that respects my time, which makes me think there is a good chance the company as a whole will respect my time and humanity as well.
Re: A senior engineer's guide to the system design interview
#340We've gone away from system design interview questions on my team. We ask people to diagram something technical they understand well and the team digs in and asks questions to understand depth and breadth of the candidates understanding. For us it works much better. It's a chance to see how well candidates do in following instructions. It gives you a chance to explore depth and breadth of their knowledge on something…
I don’t like this approach because it doesn’t provide measurable or repeatable criteria for comparing candidates. It also suffers from a sort of Gell-Mann amnesia where a candidate who spouts good-sounding BS about a topic you’re not familiar with is assumed to be competent across the board.
We’ve found that this diagram exercise is actually a lot harder to BS your way through because the expectation is that we’re going to probe into your answers and it’s supposed to be something you understand well.