Golang
Cos'è un indice composito?
Il product manager chiede di realizzare in un mese una funzionalità: in assenza di appartamenti a San Pietroburgo per le visite di maggio, mostrare opzioni simili nelle città vicine (Vyborg, Kronstadt). Nessuna analisi, nessun documento tecnico. Descrivi i passaggi dalla conversazione al primo commit.
Nel curriculum si menziona che hai implementato il tracing — puoi raccontare di più?
Cosa succede se si lascia un select senza casi in Go?
Quali metodi conosci per cambiare goroutine? Come cambiare manualmente una goroutine?
Quali pattern di progettazione conosci? Quali gruppi di pattern esistono?
Come fare a non andare mai al servizio che sicuramente fallirà o sarà inaccessibile?
func fanin[T any](chs ...<-chan T) chan T { out := make(chan T) wg := sync.WaitGroup{} for _, ch := range chs { wg.Add(1) go func(c <-chan T) { defer wg.Done() for v := range c { out <- v } }(ch) } go func() { wg.Wait() close(out) }() return out } func main() { ch1 := make(chan int, 5) ch2 := make(chan int, 5) for i := 1; i <= 5; i++ { ch1 <- i ch2 <- i * 2 } close(ch1) close(ch2) fmt.Println(fanin(ch1, ch2)) }
Cos'è l'allineamento delle strutture in Go? Come ottimizzare i campi della struttura in memoria?
Come possono interagire tra loro i contenitori?
Era possibile modificare limiti e regole in runtime? C'era un'interfaccia utente per questo?
Hai sempre lavorato come outsourcing/outstaff?
E poi cosa fai con questi dati?
Cosa sono le goroutine in Go e come si differenziano dai thread di sistema?
Scrivi l'importazione per i pacchetti utilizzati
Perché sceglieresti un canale invece di WaitGroup/errgroup? In cosa è peggio errgroup?
Perché è nata la necessità di ridurre le allocazioni: è stata una richiesta del business o un'iniziativa del team?
Quanta esperienza commerciale hai in Go?
Vuoi un lavoro da remoto a tempo pieno o sei anche disposto a considerare opzioni con ufficio?
Perché stai cercando un nuovo lavoro, cosa vuoi cambiare?