Kotlin
Vertel over replicatie in PostgreSQL: master-slave, wat gebeurt er bij een storing van de replica
Hoe werkt het Dirty Checking mechanisme in Hibernate?
Waarom kan de query-optimizer van Postgres Seq Scan gebruiken in productie, maar Index Scan in dev/ft met dezelfde indexen?
Heb je HQL, native query, JDBC direct gebruikt? Batching in Hibernate?
// reserveren(stoel_id, gebruiker_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("Zitplaats niet beschikbaar") insert into bookings (user_id, seat_id, status, created_at) values (user_id, ...) update seats set status = 'booked' where id = seat_id commit return success()
Zijn Kafka-transacties gebruikt (exact één keer semantiek)?
Vertel over monitoring en metrics in het project (Prometheus, Grafana)
Hoe los je het probleem op van gelijktijdige updates van één entiteit uit twee Kafka-topics (één topic overschrijft de wijzigingen van de andere)?
Wat doet VACUUM in PostgreSQL en waarom verschijnen dode rijen?
Vertel over partitionering in PostgreSQL
Vertel over optimistische en pessimistische locking, wanneer deze toe te passen?
Vertel me over de isolatieniveaus van transacties
/* SELECTIE links.K, links.V1, rechts.V2 VAN links JOIN rechts ON links.K = rechts.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> links, List<Pair<K, V2>> rechts) { return null; } private static class Pair<A, B> { private A eerste; private B tweede; Pair(A eerste, B tweede) { this.eerste = eerste; this.tweede = tweede; } } private static class Triple<A, B, C> { private A eerste; private B tweede; private C derde; Triple(A eerste, B tweede, C derde) { this.eerste = eerste; this.tweede = tweede; this.derde = derde; } }
Weet je wat Service Mesh in Kubernetes is?
Wat was de belasting op de services? Welke optimalisaties werden toegepast?
Hoe de belasting op de handvatten controleren (snelheidsbeperking)?
Heb je Kotlin gebruikt? Heb je ervaring?
Vertel eens iets over jezelf en je werkervaring
/*Gegeven een string, moet een functie worden geïmplementeerd om de correctheid van de haakjesaanduiding te controleren. Elk open haakje moet overeenkomen met een bijbehorend sluitend haakje. Open en sluit haakjes moeten in de juiste volgorde staan. Types haakjes: "{", "}", "(", ")", "[", "]". Invoer: "([]){}[(()())()]" Resultaat: true Invoer: "[(])" Resultaat: false Omdat de haakjes 2 en 3 verkeerd zijn aangegeven, verschijnt de sluitende ']' eerder dan de sluitende '(' */ 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(); }