Well written article. The only part I don't agree with is this though. If I am applying to a company, I do research what the company (and its product) is about. But that's it. I want to know if in my current "shape" and with my current knowledge, I would be a good fit for them.
For me, preparing for days or weeks for a tech interview feels like cheating: "Recruiter: design a distributed key-value store. Me thinking: yes! I read how to do that in How to Crack the Coding interview! I'm gonna nail it!... Recruiter after seeing my solution: Wow, let's hire this guy!"