Golang
Popište proces kompilace programu v Go: co se stane při spuštění go build?
Na co se díváte ohledně platu?
Pověz o procesu code review a hodnocení v týmu (360, hodnocení výkonu).
Sekvence výstupu 100 gorutin bude při každém spuštění stejná? Čím to závisí?
Jak bylo implementováno ukládání dat do mezipaměti? Jaká politika mezipaměti byla použita?
Proč jste se rozhodl změnit zaměstnání a připojit se k Ozon?
Jak jsou data uložena ve starých mapách Go po definici bucketu?
Co jsou gorutiny? Čím se liší od běžných vláken (threads)?
Proč jste vstoupil na trh a co je nyní důležité při výběru nového zaměstnavatele nebo nového projektu? Existuje zásadní rozdíl mezi fintechem a retailem?
Co je to ACID? Můžeš to rozložit a vysvětlit?
Na co je při importu balíčků potřeba znak podtržení?
V jakém městě se právě nacházíte? Máte v Gruzii povolení k pobytu nebo pracovní povolení?
Navrhněte systém matchmakingu pro šachovou platformu. Přijímá se User ID jako vstup a je třeba najít pár hráčů s podobným hodnocením. Zátěž: 1 milion registrovaných uživatelů, 100 tisíc DAU, 500-1500 současných herních relací v špičce. Jakou architekturu navrhujete?
Celkový dojem z pohovoru, úroveň kandidáta, doporučení
Použitím pouze šestého řádku kódu (aniž by se změnila signatura funkce) je možné získat přístup k prvkům přidaným uvnitř funkce (trojka a čtyřka)?
V jakém městě se právě nacházíš?
Zajímá vás práce na infrastrukturních úkolech, nikoliv v obchodní doméně?
func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }
Jaké jsou vaše finanční očekávání? Uveďte minimální a pohodlnou úroveň.
Který kanál přenáší data rychleji: s bufferem nebo bez bufferu?