4 ms·
The way it typically fall aparts for my candidates is I ask about optimizations, they say X could be cached, then I ask about cache invalidation and lo and beho
by lhorie 4y ago
The way it typically fall aparts for my candidates is I ask about optimizations, they say X could be cached, then I ask about cache invalidation and lo and behold, it didn't even occur to them that the cache needs to be invalidated at some point, so they blurt something along the lines of doing the entire expensive operation again and checking it against the cache, or something similarly nonsensical.
More common than I'd like to admit.
- ThalesX 4y ago> then I ask about cache invalidation No doubt with a follow up on how the variable would be best named.
- old_hat 4y agoThat's obvious. It's called "x".
- Apocryphon 4y agoYou mean x1
- nonethewiser 4y agoIsn’t it better to know you can add a cache to reduce latency, even if you’re not sure how to invalidate it?
- lhorie 4y agoThe problem isn't demonstrating understanding of what a cache does conceptually, in fact any SWE worth their salt ought to be able to explain caching. The problem is if the candidate's decision to add a cache causes the system behavior to become obviously incorrect upon an ounce of further inspection, because this demonstrates a lack of foresight about local maxima vs global maxima, and systems are all about trade-offs at the macro scale. Caching is an easy thing to blurt out in an interview setting, but not all problem spaces benefit from caching and caching often isn't the only available solution, or the most ideal one.
- Misdicorl 4y agoI started typing no, but then.... I honestly can't decide which would be worse: a developer who literally doesn't know what a cache is or one who installs caches with bad invalidation policies.