Golang
Как работи профилирането?
Какво те мотивира сега да търсиш нова работа?
Въпрос 1: Какво ще изведе кодът със слайсове? (append, капацитет, споделен основен масив)
Разкажете за стратегиите за шардване на бази данни: кога да започнете шардването и по какви критерии да избирате ключа за шардване?
Защо избрахте Kafka вместо RabbitMQ или база данни? Какъв беше смисълът?
Имали ли сте опит с Docker? Имали ли сте опит да напишете Dockerfile самостоятелно?
Какво е SOLID? Изброите принципите.
Разкажи за екипа и процесите на управление (спринтове, канбан и др.)
Колко общ опит имаш в IT в търговски план?
Какво е nil интерфейс? Какво е под капака?
Колко време е необходимо за обработка?
Как внедрявате: Kubernetes, bare metal или облака?
// Въпрос 3 // Опишете каква задача решава този код // Какви проблеми има в това решение? // Как бихте преписали този код? var c int var mu sync.RWMutex type Trace struct { // Някои полета тук } 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 } }
Какво се случва, ако предадете slice като аргумент на функция и го промените вътре?
Ако добавим много потребители, но закъснението на Kafka все още не намалява, какво това свидетелства?
Какви инструменти използвате за оценка на производителността и профилиране по време на разработката на приложение на Go?
Как да се справим със ситуацията, когато всички 5 горутин едновременно виждат празен кеш и отиват към базата данни (cache stampede)?
Защо е удобно броят на шардовете да е степен на две, а не например тройка?
Кои точно технологични предимства и екосистеми на Go, възможно уникални, които само Go отговаря, бихте могли да посочите?
Разкажи за текущата си работа в Wildberries — каква платформа е, какъв екип, с какво се занимаваше?