Golang
Koji je tvoj glavni programski jezik? Koristiš li C++ ili Python?
Zašto se koristi kontekst? Kako ste ga koristili u praksi?
Znaš princip najmanjih privilegija (Principle of Least Privilege)?
Kako je tim bio organizovan? Koliko ljudi, kako su se delili po domenima?
Šta je inode u Linuxu?
Ispričaj mi o svom iskustvu na posljednjem radnom mjestu
Da li koristite TDD? Kako pokrivate svoj kod testovima?
Šta će se desiti ako ne prosledite kontekst u upitu ka bazi podataka?
Ispričajte nam o svom radnom iskustvu, posebno na poslednjem radnom mestu.
Sistem je počeo da usporava — kako ćeš tražiti razlog?
Kako pristupate rešavanju složenog zadatka u legacy kodu sa različitim tehnologijama (Go, Bash, Python, Jenkins) u jednom sprintu?
Koje druge strukture se koriste za indekse u bazama podataka osim B-stabla?
Sviđao si serial ID. Šta to znači?
Kako planirate da realizujete morphing objekta jablanog stabla u jabuku? Koje pristupe vidite?
Šta je CAP teorema i dajte primere CP i AP sistema?
Koji drugi načini postoje za zaštitu mape od konkurentnog pristupa, osim mutexa?
Da li postoje neki indeksi u ovoj tabeli?
Ako servis koristi previše memorije, šta treba gledati u profileru? Kako smanjiti alokacije?
func fetch(ctx context.Context, u User) (string, error) { // nešto radimo u mreži time.Sleep(time.Millisecond * 10) // simulacija kašnjenja return u.Name, nil //return "", errors.New("neka greška") } func Do(ctx context.Context, users []User) (map[string]int64, error) { var mu sync.Mutex var wg sync.WaitGroup ch := make(chan error, len(users)) names := make(map[string]int64, 0) ctxWithCancel, cancel := context.WithCancel(ctx) wg.Add(len(users)) for _, u := range users { go func() { defer wg.Done() select { case name, err := fetch(ctx, u): if err != nil { ch <- err return } mu.Lock() names[name] = names[name] + 1 mu.Unlock() case <-ctxWithCancel.Err: } }() }
Zašto ste napustili prethodnu kompaniju?