

I really hate these awful “puzzles”. They only work by the asker intentionally withholding what, if any, constraints exist in the problem space leaving it totally vague, but of course there ARE secret constraints revealed if you violate them with your answer.
Me: “I do it without flipping any switches. I just ask the lightswitches which one controls the light, and they tell me.”
Interviewer: “That’s not allowed.”
Me: “Well what exactly is allowed? Can I pull the cables out of the wall and see which connects to the bulb? Oh, I bet that’s not allowed. How about I open my smart home app and just check which of the smart switches is labeled for it? Oh, I bet it’s not a smart switch so I can’t do that either? Oh, then the bulb has a chime that boops when it comes on, so I just listen for the boop. Oh that’s not allowed either? Wait wait wait, the walls are glass, so I just watch to see when the bulb comes on when I flick the switches.”
Even the canonical answer makes a dumb assumption. Ordinary LED bulbs don’t get hot.








Cache-like storage, private user-specific data, blobby or otherwise schemaless data. Stuff like that. But IMO it’s a matter of time until you find a need to operate against this data relationally, and then you regret using document storage. I’ve made this mistake twice now and do not intend to make it again. I now consider document storage architecture to be a performance optimization with significant tradeoffs, and not a choice to be made by default for nearly any scenario.