Co je pro vás ideální tým? Jaké jsou požadavky na analytiky?
Java
Povězte mi o složité chybě nebo náročném vylepšení na posledním projektu
Jak optimalizovali pomalé SQL dotazy? Jak řešili problém N+1 v Hibernate?
Proč jste zvolili Cassandra? Jaké alternativy jste zvažovali? Jak jste je ověřovali?
Jaké ORM byly použity? Kdy Hibernate, kdy JDBC? Byly Liquibase/Flyway?
Povězte nám o své zkušenosti a posledním projektu
Jaké nástroje pro monitorování, logování a metriky byly použity? Jaký přístup v mikroservisech?
Jak jste pracovali s Kafka? Museli jste ladit partice, konfigurace? Co se stane, pokud jsou spotřebitelé méně než partice?
Povězte mi o problému hotspot v Cassandře a jak byl vyřešen
Který projekt považujete za nejdůležitější pro sebe a proč?
Na co jste mohli ovlivnit v architektonických rozhodnutích na posledním projektu?
Byl přístup k monitorování na různých okruzích? Jak probíhal proces vydání?
Popis úkolu: Je třeba implementovat REST endpoint pro získání seznamu pojistných smluv, které patří danému klientovi a jsou zaplacené. Vzhledem k velkému množství smluv v systému je nutné předvídat parametr pro omezení výsledku. @RestController public class ClientController { @Value("policy.limit") private int policyLimit; @Autowired private PolicyService policyService; @RequestMapping(path = "client/{clientId}/policies", method = RequestMethod.POST) public Response getClientPolicies(@PathVariable("clientId") String clientId) { List<PolicyDTO> policies = getPolicies().stream() .limit(policyLimit) .filter(p -> p.getClientIds().contains(clientId)) .filter(p -> p.isPaid()) .toList(); return new Response(policies); } @Transactional private List<PolicyDTO> getPolicies() { return policyService.getPolicies(); } @Data @AllArgsConstructor public class Response { private List<PolicyDTO> policies; } @Data public class PolicyDTO { private String id; private String name; private List<String> clientId; private Boolean isPaid; } @RequiredArgsConstructor @Component public class PolicyService { private PolicyDbRepository repository; List<PolicyDTO> getPolicies() { return repository.getPolicies(); } } public interface PolicyDbRepository { List<PolicyDTO> getPolicies(); }