Question library
Questions from real interviews. Drill any of them by voice in a couple of minutes, with an interviewer, a score and feedback.
There are price providers, and each one has a price method that takes a SKU and asynchronously returns a CompletableFuture with a price. Write a method bestPrice that takes a SKU and a list of providers, queries all of them in parallel, and returns a CompletableFuture with the lowest price: providers that fail or don't respond within two seconds are skipped, and if nobody returned a price, the result completes with an error.SeniorWrite a memoizeAsync function. It takes an async function of a string key and a cache time to live in milliseconds, and returns a wrapper: a repeated call with the same key doesn't go to the network, concurrent calls share a single request, and errors aren't cached.SeniorWrite a retry function. It takes an async function and options: the number of attempts, a base delay, and an AbortSignal. It calls the function and, on error, retries it with an exponentially growing delay. It returns a promise with the first successful result or the last error.Senior