Golang
Proč měníte zaměstnání?
Jaký je váš hlavní programovací jazyk? Jak dlouho programujete profesionálně v Go?
Jaká vlajka ls zobrazí všechny soubory, včetně skrytých (. a ..)? -a -A -i -r
Jak jste měli PostgreSQL rozšířený — byla replikace pro analytiku nebo jste čítali z masteru?
Očekávání ohledně platu a ochota na změnu
Uveďte vzory návrhu z různých kategorií (kreativní, strukturální, behaviorální, paralelní programování) a podrobně vysvětlete jeden z nich.
Pokud byl první produkt zobrazen 1000krát, druhý 500krát, a první má 50 kliků, druhý 25, jak je lze porovnat?
Pracoval jste s gRPC? Jaký protokol se používá na pozadí?
Čím se liší HTTP od REST?
Přidali jste index pro dotaz, ale podle EXPLAIN se nezrychlil. Co může být problém?
Jak přicházejí úkoly do práce? Vyprávějte mi o tomto procesu.
Pověz mi podrobněji o příběhu optimalizace rychlosti reportu: co jsi dělal, s čím ses setkal, jaké byly potíže, jak jsi je řešil?
Jak rozhraní v Go umožňují implementaci polymorfismu bez explicitního označení dědičnosti?
Máte vysokoškolské vzdělání? V kterém roce jste absolvoval?
Proč byl do oblasti odpovědnosti kandidáta přidán služba antifraudních kontrol?
Jaké nástroje jsi používal k vizualizaci architektonických schémat a pro jaké případy?
Co je XSS (Cross-Site Scripting) a jak s tím bojovat?
Jak přijatelný by pro vás byl formát práce v kanceláři/hybridní (kancelář mezi [lokalizace])?
Jak byla v týmu organizována projektace architektury, jakými nástroji se používali?
// Naleznite največje sodo število package main import "fmt" func main() { var max int for i := 1000; i > 0; i-- { go func() { if i%2 == 0 && i > max { max = i } }() } fmt.Printf("Največje je %d", max) } func maxEvent(n, workers int) int { var wg sync.WaitGroup results := make(chan int, workers) jobs := make(chan int, workers) for w := 0; w < workers; w++ { wg.Add(1) go func() { defer wg.Done() localMax := -1 for num := range jobs { if num%2 == 0 && num > localMax { localMax = num } } result <- localMax }() } go func() { for i := 1; i <= n; i++ { jobs <- i } close(jobs) }() go func() { wg.Wait() close(results) }() globalMax := -1 for localMax := range results { if localMax > globalMax { globalMax = localMax } } return globalMax }