Amazing article ! I cannot understand why companies need a senior developer with years of experience and then ask him/her to solve a B Tree or dynamic programming any 2 year grade student can do .
Which percentage of real programmers solve this kind of problems on their daily jobs ???
They are ALL already solved (BTW in an optimal way, complexity is just what most code reviews look at) .
Why aren't such interviews related to maintaining an existing software, reading a specification, handling coupling, branching a real git package or talking to an actual client ?.
I guess 95% or real programmers face this kind of problems on a daily basis and they don't need to maximize an array's storage.