Живо кодиране: дедупликация на адреси — как да обработите списък с дублирани адреси, за да извикате уникални адреси. Решение чрез map.
Golang
Работят ли горутините паралелно или конкурентно?
Живо кодиране: задача за горутините — конкурентен достъп до общи данни, race condition, решение чрез mutex. Разлика между sync.Mutex и sync.RWMutex.
Живо кодиране: семафор — как работи и реализация на базата на буфериран канал.
Разкажи за планировщика на горутините в Go — модел GMP, какви функции изпълнява?
Разкажи ми за нивата на изолация на транзакциите в PostgreSQL и с какви аномалии се борят.
Какво е ACID? Обяснете всяко свойство.
Какво е контекстът в Go, как се използва, за какво е и какви видове съществуват?
Инструменти за разработка: работа с AI асистенти (Cursor и други), подход към тестването (unit, интеграционни тестове).
Живо кодиране: добавете таймаут към функцията — ако изпълнението надвиши 1 секунда, върнете грешка. Използване на select, time.After, context.
Какво е CQRS?
Разкажете за SELECT FOR UPDATE — за какво се използва и как работи?
Архитектурна задача: как да гарантирате изпращането на събитие към Kafka при регистрация на потребител в микросервисна архитектура (услуга за потребители + услуга за уведомления), ако Kafka е асинхронен канал?
Разкажи ми за индексите в PostgreSQL — кои има, какво е съставен индекс и редът на колоните.
Какво е Clean Architecture и DDD? Работили ли сте с тях?
Какво е graceful shutdown и как работи в Go?