Čo je pre vás ideálny tím? Aké sú požiadavky na analytikov?
Java
Porozprávajte o zložitej chybe alebo ťažkej úprave vo vašom poslednom projekte
Ako optimalizovali pomalé SQL dotazy? Ako riešili problém N+1 v Hibernate?
Aké ORM ste používali? Kedy Hibernate, kedy JDBC? Boli Liquibase/Flyway?
Prečo ste si vybrali Cassandru? Aké alternatívy ste zvažovali? Ako ste ich overovali?
Povedzte nám o svojej skúsenosti a poslednom projekte
Aké nástroje na monitorovanie, logovanie a metriky ste používali? Aký prístup v mikroservisoch?
Ako ste pracovali s Kafka? Bolo potrebné doladiť partície, konfigurácie? Čo sa stane, ak sú consumers menej ako partitions?
Povedzte o probléme s hotspotom v Cassandra a ako bol vyriešený
Ktorý projekt považujete za najdôležitejší pre seba a prečo?
Bol prístup k monitorovaniu na rôznych okruhoch? Ako prebiehal proces vydania?
Na čo ste mohli vplývať v architektonických rozhodnutiach na poslednom projekte?
Popis úlohy: Je potrebné implementovať REST endpoint na získanie zoznamu poistných zmlúv, ktoré patria danému klientovi a sú zaplatené. Pretože v systéme existuje veľmi veľké množstvo zmlúv, je potrebné predvídať parameter na obmedzenie 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(); }