Golang
Дали типът string в Go е променлив или непроменлив?
Как ще разбереш, че станал по-ценен благодарение на новите знания?
Как беше организирана работата ви с Kafka? Как използвахте консуматори, групи от консуматори?
По какъв принцип избрахте архитектурата и границите на услугите?
Имали ли сте опит с разпределени системи?
Какъв беше съставът на екипа? Беше монофункционален или крос-функционален?
Имали ли сте опит с високонагружени услуги?
На колко хоста/инстанции работеше най-натовареният услуга?
Какви уникални характеристики имат слайсовете в езика Go?
Какво е TLS и защо е необходим сертификат?
Как работи хващането на паника (panic/recover) в Go?
Чували ли сте преди за [фирма] или нашите продукти?
Кои инструменти за синхронизация на данни знаете в Go?
/* Има приложение с архитектура на микросервизи. Микросервис може да бъде абстрахиран чрез интерфейса Backend. За достъп до инстанция на микросервиса, може да използвате типа BackendImpl, който вече е реализиран. Всеки микросервис има няколко десетки работещи екземпляра, всеки от които е достъпен по свой адрес addr. Обаче отделните екземпляри на микросервиса не са надеждни: те могат да се сринат, да бъдат недостъпни или претоварени. Затова трябва да реализирате типа Balancer, който също реализира интерфейса Backend и извършва баланс на натоварването от страна на клиента между екземплярите на микросервиса, като всеки път избира **най-малко натоварения** екземпляр. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr съдържа ip:port на конкретен екземпляр func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO } var _ Backend = &Balancer{} // addrs съдържат адресите на всички балансирани екземпляри func NewBalancer(addrs []string) *Balancer { // TODO }
Имаш ли идея в коя екип искаш да работиш? Каква трябва да бъде тя?
Писали ли сте нещо с CTE (Общ израз на таблица, WITH)?
Може ли Go да открие deadlock? Как го открива runtime-ът на Go?
Може би сте чули нещо за нас преди, или сте успели да прочетете нещо за компанията?
Как се разделят кодовете за HTTP отговори на групи и какво означават?
Какво ще се случи, ако трябва да се откажете от Kafka и да я замените с друг брокер на съобщения? Как да изолирате Kafka от външните услуги?