Currency conversion uncached
Review this Java service method called on every request.
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix, specific and kind.
0:00 of about 25 min
Mark a line and say what kind of problem it is.0 findings
1public BigDecimal convert(BigDecimal amount, String from, String to) {
2 List<Rate> rates = rateRepository.findAll(); // ~5000 rows, rarely changes
3 BigDecimal fromRate = rates.stream()
4 .filter(r -> r.getCurrency().equals(from)).findFirst().get().getValue();
5 BigDecimal toRate = rates.stream()
6 .filter(r -> r.getCurrency().equals(to)).findFirst().get().getValue();
7 return amount.multiply(toRate).divide(fromRate, 8, RoundingMode.HALF_UP);
8}
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.
Run or narrate your approach, then ask the coach.