Golang
Wat is het verschil tussen REST en RPC? Wat betekent stateless in de context van REST?
Welke functie heb je ontwikkeld waar je trots op bent? Vertel over de laatste interessante taak.
Hoe werkt de garbage collector in Go? Beschrijf de fasen en het algoritme.
Je hebt veel technische taken geschreven. Vertel alsjeblieft, welke producttaken ze hebben geholpen op te lossen.
Welke metrics? Met welke tools gaan we deze metrics vastleggen?
Vertel over de invloed van GOGC op het werk van de Garbage Collector en hoe het geheugengebruik te optimaliseren.
Algemene indruk van het interview, het niveau van de kandidaat, aanbevelingen
Wat motiveert je in je werk? Wat is belangrijk bij het kiezen van een nieuwe plek?
Had je een code review? Hoe was het georganiseerd?
Wat is partitionering en sharding?
Beschrijf de flow van een HTTP-verzoek van de browser naar de PHP-toepassing.
Wat gebeurt er met de gegevens in de tweede slice als deze is gemaakt van de eerste met capaciteit 5, en vervolgens de capaciteit wordt verhoogd tot 10?
Wat is het verschil tussen JSON en JSONB in PostgreSQL?
Wat toont de code met slices en het doorgeven aan een functie? Hoe werkt het doorgeven van een slice aan een functie?
Vertel me over ontwerppatronen. Wat is double-checked locking (dubbele controlevergrendeling) en waar wordt het voor gebruikt?
Heeft u ervaring met technische screenings of sollicitatiegesprekken?
Moet je een index toevoegen voor een boolean veld?
// Er is een Backend-interface met de methode Execute // Moet een load balancer schrijven // De load balancer voldoet aan de Backend-interface // De taak van de load balancer is om een verzoek te accepteren en door te sturen naar een van de beschikbare backends // De load balancer bevat een collectie van backends // Bij het uitvoeren van een verzoek kiest de load balancer een van de backends volgens een bepaald algoritme // // Least Connection algoritme, health check en automatische herstel, thread safety via atomic, context doorgeven voor afbreken, foutdrempel voor het uitschakelen van een backend // Request vertegenwoordigt het inkomende verzoek voor Backend. type Request struct { // Payload – willekeurige gegevens van het verzoek. Payload []byte } // Response vertegenwoordigt het antwoord van Backend. type Response struct { // Payload – willekeurige gegevens van het antwoord. Payload []byte } // Backend – interface die de methode voor het uitvoeren van een verzoek definieert type Backend interface { Execute(ctx context.Context, req Request) (Response, error) } type Balancer struct { backends []Backend } func NewBalancer(backends []Backend) *Balancer { return &Balancer{backends: backends} } func (b *Balancer) Execute(ctx context.Context, req Request) (Response, error) { // todo: implementatie van de load balancer logica return Response{}, nil } type TestBackend struct { }
Wat is een reverse proxy en wat wordt er meestal voor gebruikt om het te implementeren?
Waar moet de bedrijfsvalidatie plaatsvinden (bijvoorbeeld datumscontrole, reserveringslimiet van 10 dagen)? In de handler of in de service?