You've received some flack for this, but I'm not sure the context. If most of the questions in this round are of this nature, then maybe it is a "why are manhole covers round" thing.
But as a one-off, and if asked in a forgiving way to explore how they think, then I'd consider this question valid.
Maybe "Have you ever thought about how GPS works?"
if "yes", then let them explain,
if "no", then make it easy for them to start reasoning about the system and then see how they might design it.
Seems to me as fair as asking "have you ever thought about how a double-linked list works?" or "a basic way to ensure database consistency when the DB is replicated at two different physical machines"?
It's not like GPS is something esoteric that they are unlikely to have interacted with, odds are they used it to get to the interview location.
I don't know about you, but this part of the interview is for me just another annoying obstacle on the way to get the job.
The "Have you ever thought about how GPS works?" question gets a scripted "No, but <blah blah blah>" answer. It's fully automatic, because there are now two possibilities:
- I have thought about GPS before. I will now fake my creative process. No hard feelings, but you are just another obstacle for me to get the job, that's it.
- I have never thought about GPS before. We will now try to design "together" a super-complicated system having so many boundaries and hidden constraints, while I will be also panicking on the inside the whole time. No wait, that would be dumb. I know, I will just refuse to discuss it further. Next question.
(Also, TIL that "flack" in addition to its primary meaning is apparently an acceptable spelling of "flak" too.)
I don't understand why you think linked lists and db replication, which I think are both are very appropriate questions for a software engineer (less relevant to FE engs), are as relevant as how GPS works.
Depends on what you’re evaluating the candidate on. If you’re evaluating the candidates ability to reason through a problem, and communicate the reasoning, the. GPS is arguably a better question for a software engineer as they’re unlikely to have studied it. Thus you can watch them work through a problem they haven’t thought about before, but which should probably have the basic tools to solve.
There should be no expectation of them coming up with the “correct” answer. But they should be able come with an answer and explain it clearly, warts, holes and all.
Using something real like GPS also ensures that the candidate understands why the problem is a useful problem to solve, and what the objective of the solution is I.e. a system that lets you locate yourself on earth.
Only reason I can think of is it is a real world example of distributed coherency/information problem and if you squint hard could give insights into things like paxos (and why it does what it does), why certain types of keying/sharding/distributed computing are done the way they are done.
But directly talking about those topics is probably handy.
But as a one-off, and if asked in a forgiving way to explore how they think, then I'd consider this question valid.
Maybe "Have you ever thought about how GPS works?" if "yes", then let them explain, if "no", then make it easy for them to start reasoning about the system and then see how they might design it.
Seems to me as fair as asking "have you ever thought about how a double-linked list works?" or "a basic way to ensure database consistency when the DB is replicated at two different physical machines"?
It's not like GPS is something esoteric that they are unlikely to have interacted with, odds are they used it to get to the interview location.