Mi az ideális csapat számodra? Milyen követelmények vannak az elemzőkkel szemben?
Java
Meséljen egy összetett hibáról vagy nehéz fejlesztésről az utolsó projektjén
Hogyan optimalizálták a lassú SQL lekérdezéseket? Hogyan oldották meg az N+1 problémát a Hibernate-ben?
Milyen ORM-eket használtak? Mikor Hibernate, mikor JDBC? Volt-e Liquibase/Flyway?
Miért a Cassandrát választottátok? Milyen alternatívákat fontolgattatok? Hogyan ellenőriztétek őket?
Meséljen a tapasztalatáról és az utolsó projektjéről
Milyen monitorozó, naplózó és metrikás eszközöket használtak? Milyen megközelítés a mikroszolgáltatásokban?
Hogyan dolgozott a Kafka-val? Szükség volt a partíciók, konfigurációk hangolására? Mi történik, ha a fogyasztók kevesebbek, mint a partíciók?
Meséljen a Cassandra hotspot problémájáról és arról, hogyan oldották meg
Melyik projektet tartod a legfontosabbnak számodra és miért?
Volt hozzáférés a különböző körök monitoringjához? Hogyan zajlott a kiadási folyamat?
Miben tudott befolyással lenni az utolsó projektjében az építészeti döntésekben?
Feladat leírása: Implementálni kell egy REST végpontot, amely lehetővé teszi egy adott ügyfélhez tartozó, fizetett biztosítási kötvények listájának lekérését. Mivel a rendszerben nagyon nagy számú kötvény található, szükséges egy paraméter bevezetése az eredmény korlátozására. @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(); }