Kotlin
¿Cómo funciona el mecanismo de Dirty Checking en Hibernate?
Cuéntame más sobre el servicio de facturación: qué se almacenaba, cómo interactuaban con el contratista?
¿Has utilizado HQL, consultas nativas, JDBC directamente? ¿Batching en Hibernate?
Explica la replicación en PostgreSQL: master-slave, qué sucede en caso de fallo de la réplica
¿Se utilizaron transacciones Kafka (semántica exactamente una vez)?
Habla sobre monitoreo y métricas en el proyecto (Prometheus, Grafana)
// book(seat_id, user_id) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null seat.status == "booked") rollback return error("Seat isnt available") insert into bookings (user_id, seat_id, status, created_at) values (used_id, ...) update seats set status = 'booked' where id = seat_id commit return success()
¿Cómo resolver el problema de actualización concurrente de una entidad desde dos tópicos de Kafka (un tópico sobrescribe los cambios del otro)?
¿Qué hace VACUUM en PostgreSQL y por qué aparecen filas muertas?
Habla sobre el particionado en PostgreSQL
Cuéntame sobre los niveles de aislamiento de las transacciones
Cuéntame sobre los bloqueos optimistas y pesimistas, ¿cuándo se aplican?
/* SELECCIONAR izquierda.K, izquierda.V1, derecha.V2 DESDE izquierda UNIR derecha EN izquierda.K = derecha.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> izquierda, List<Pair<K, V2>> derecha) { return null; } private static class Pair<A, B> { private A primero; private B segundo; Pair(A primero, B segundo) { this.primero = primero; this.segundo = segundo; } } private static class Triple<A, B, C> { private A primero; private B segundo; private C tercero; Triple(A primero, B segundo, C tercero) { this.primero = primero; this.segundo = segundo; this.tercero = tercero; } }
¿Sabes qué es Service Mesh en Kubernetes?
¿Cuál fue la carga en los servicios? ¿Qué optimizaciones se aplicaron?
¿Has utilizado Kotlin? ¿Tienes experiencia?
¿Cómo controlar la carga en los manillares (limitación de tasa)?
Cuéntame sobre ti y tu experiencia laboral
/*Dada una cadena, es necesario implementar una función para verificar la corrección en la indicación de los paréntesis. Cada paréntesis abierto debe tener un paréntesis cerrado correspondiente. Los paréntesis abiertos y cerrados deben estar en el orden correcto. Tipos de paréntesis: "{", "}", "(", ")", "[", "]". Entrada: "([]){}[(()())()]" Resultado: true Entrada: "[(])" Resultado: false Porque los paréntesis 2 y 3 están indicados incorrectamente, la cerradura ']' aparece antes que la cerradura '('*/ public boolean check(String s){ Deque<Character> stack = new ArrayDeque<>(); Map<Character, Character> map = Map.of( ')', '(', ']', '[', '}', '{' ); // ((( for( char c : s.toCharArray()){ if(map.containsValue(c)){ stack.push(c); } else if(map.containsKey(c)){ if( stack.isEmpty() || stack.pop() != map.get(c)){ return false; } } } return stack.isEmpty(); }