I presume that the poster did not get the job. The correct answer is that while addition and subtraction are mutually order independent addition and multiplication are not. This cannot be implemented for a value that allows addition. You need to create a new type of value "multiplyable" and implement multiplication only for that new special type of int. Otherwise you'll end up with meaningless race conditions in the case,of multiple clients.
Congratulations, you have qualified as a Type 1 candidate and did not get the job.
"and the whole thing needs to be atomic. Let’s look at how the locking works…” They spend all three hours getting deeper and deeper down various rabbit holes, and never produce anything that works. Candidates in this group don’t get hired."
The article mentions an `append` operation which is obviously not commutative; does that imply memcached needs a separate "appendable" string type? Of course not. Memcached only guarantees that the individual operations are atomic, it's the client's responsibility to avoid race conditions between multiple operations.
Now to in order to multiply a sequence of numbers correctly in a "high performance" shared store, you have external process synchronization. Just awesome. Thank you for the lesson. I had no idea concurrent processing could be so easy.