Golang
Hoe werkt profiling?
Wat motiveert je nu om een nieuwe baan te zoeken?
Vraag 1: Wat zal de code met slices tonen? (append, capaciteit, gedeeld onderliggend array)
Vertel over strategieën voor database sharding: wanneer moet je beginnen met sharding en op basis van welke criteria kies je de sharding-sleutel?
Waarom kozen ze voor Kafka in plaats van RabbitMQ of een database? Wat was de bedoeling?
Heeft u ervaring met Docker? Heeft u ervaring met het zelf schrijven van Dockerfile?
Wat is SOLID? Noem de principes.
Vertel me over het team en de managementprocessen (sprints, kanban, etc.)
Wat is je algemene ervaring in IT in de commerciële sector?
Wat is een nil-interface? Wat zit er onder de motorkap?
Hoeveel tijd is er nodig voor de verwerking?
Hoe deployen jullie: Kubernetes, bare metal of de cloud?
// Vraag 3 // Beschrijf welke taak deze code oplost // Welke problemen zijn er in deze oplossing? // Hoe zou je deze code herschrijven? var c int var mu sync.RWMutex type Trace struct { // Sommige velden hier } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
Wat gebeurt er als je een slice als argument aan een functie doorgeeft en deze binnenin wijzigt?
Als we veel consumenten toevoegen, maar de Kafka-lag neemt nog steeds niet af, waar wijst dat op?
Welke tools gebruik je voor prestatie-evaluatie en profiling tijdens het ontwikkelen van een Go-toepassing?
Hoe ga je om met de situatie waarin alle 5 goroutines tegelijkertijd een lege cache zien en naar de database gaan (cache stampede)?
Waarom is het aantal shards handig als een macht van twee, en niet bijvoorbeeld drie?
Welke technologische voordelen en ecosystemen van Go, mogelijk uniek, die alleen Go kan vervullen, zou je kunnen noemen?
Vertel over je huidige werk bij Wildberries — wat voor platform is het, welk team, waarmee heb je gewerkt?