3 ms·
You might be underestimating how much thinking is required on the part of the applicant to fetch-a-rock at 60M requests per-second.
by gafferongames 3y ago
You might be underestimating how much thinking is required on the part of the applicant to fetch-a-rock at 60M requests per-second.
- cryptonector 3y agoIn your setup the applicant is asked to build a proxy, and that proxy should scale horizontally just fine. When you get to C10M you start thinking about unikernel-style or user-land networking stack style solutions, but that's not going to be a weekend project, and the conversation will get interesting. If you really expect a weekend project here then the answer to scaling the proxy is bound to be: horizontally (meaning: not that interesting).
- gafferongames 3y agoI would argue that both vertical AND horizontal scaling are required, because the winning solution in the end at the absolute highest level of this question, is one that gets the work done for significantly less $$$ than my golang implementation, in whatever language, stack, cloud or bare metal you deem appropriate.
- cryptonector 3y agoThe vertical component is about efficiency. It's very hard to get past a certain point with a general purpose OS and Golang. You'll need NCPU threads/processes and no context switching, so you're definitely talking about: - unikernel or user-land NIC driver and network stack - async/await or continuation passing style to reduce the per-client/request memory footprint I'm not applying though, but I'm saying that "Golang + super-efficient" is definitely not something I'd assign as an interview weekend project -- that's something to be discussed in detail during the interview, and I'd expect no more than a horizontally scalable solution over a weekend. Getting the vertical efficiency tuning done will take a lot of time and cannot be expected to be a weekend or week project by an unpaid applicant, but you can expect the applicant to tell you how they'd go about it.
- gafferongames 3y agoSome people when tasked with a simple problem, just love to turn it into an overly complex one.