recently I failed quite a few system design interviews, and one big learning is that I should have thrown popular/buzzing technologies (like Kafka or NoSQL) during interviews instead of getting too much in the principle of distributed systems
One example is that almost every interviewer look for Kafka to make system asynchronous, and somehow they got the impression that RPC equals synchronous processing. No interviewer is interested in understanding how Kafka producer client use RPC to send data to server, and how Kafka consumer client uses RPC to fetch data; no interviewer cares about the complexity and the price of running Kafka, even though in most system design cases there is only one producer and one consumer.
Another example is that interviewers thought I am idiot because I chose using files to store time series data instead of NoSQL database...
If I cannot change it, the only choice left for me is to adapt.
reply