O que é uma equipa ideal para si? Quais são os requisitos para os analistas?
Java
Fale sobre um bug complicado ou uma melhoria difícil no seu último projeto
Como otimizaram consultas SQL lentas? Como resolveram o problema N+1 no Hibernate?
Por que escolheram o Cassandra? Quais alternativas consideraram? Como as verificaram?
Que ORM foram utilizados? Quando Hibernate, quando JDBC? Houve Liquibase/Flyway?
Fale sobre a sua experiência e o seu último projeto
Que ferramentas de monitoramento, logging e métricas foram usadas? Qual abordagem em microsserviços?
Como trabalhou com Kafka? Foi necessário ajustar partições, configurações? O que acontece se os consumidores forem menos que as partições?
Qual projeto você considera mais importante para você e por quê?
Fale sobre o problema com o hotspot no Cassandra e como foi resolvido
Houve acesso à monitorização em diferentes circuitos? Como foi o processo de lançamento?
Em que conseguiu influenciar nas decisões arquitetónicas do seu último projeto?
Descrição da tarefa: É necessário implementar um endpoint REST para obter a lista de apólices de seguro que pertencem a um cliente específico e que estão pagas. Como há um número muito grande de apólices no sistema, deve-se prever um parâmetro para limitar o resultado. @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(); }