Перейти к содержимому

Rshb / Россельхозбанк (PaaS)

Актуальность: 1 кв 2025

  • Расскажи о терминологии Kafka: pod, service, ingress, deployment. containers/kubernetes
  • Что делают пробы: liveness и readiness. containers/kubernetes
  • Что делает функция init() в пакете (Golang) и что не рекомендуется делать внутри нее. go/stdlib-tooling
  • Пользователь сообщает, что отправил запрос, но он не работает. Что будешь делать? (Вопрос максимально абстрактный) misc/general
  • Приложение начало потреблять 100% CPU. Как определить проблему и что предпринять? go/perf-profiling
  • Приложение начало потреблять 100% RAM. Как понять, что происходит? go/perf-profiling
  • Приложение работало на одном ядре CPU, добавили второе, но оно все равно использует только одно. Почему? go/runtime
  • Приложение обращается к стороннему сервису, который долго отвечает. Почему это происходит и что можно сделать? Если решаем через очереди, то почему очереди не всегда хорошее решение? Как понять, что сервис принял запрос и как убедиться, что ответ действительно содержит наши данные (синхронно или через Kafka/RabbitMQ)? algorithms/data-structures
  • Есть запрос SELECT * FROM employее WHERE lastname =:lastname. Запрос тормозит. Почему? Повесили индекс, но с ним запрос то тормозит, то работает нормально. Почему? sql/indexes
  • Есть запрос SELECT * FROM employее WHERE lastname LIKE '%somename%'. Будет ли использоваться индекс? Как решить проблему поиска, чтобы он был быстрым? sql/indexes
  • Как должно работать, если все данные хранятся в памяти? Кодить не нужно - достаточно рассказать словами. go/memory-gc
type Account struct {
Number string // уникальный номер счета
Balance float64 // сумма на счете
}
// Transfer осуществляет перевод указанной суммы с одного счета на другой.
func Transfer(from *Account, to *Account, amount float64) error {
// Реализация перевода
return nil
}

Каждый вопрос требует подробных рассуждений. На каждый ответ могут задать дополнительные вопросы и копнуть глубже. Интервьюер очень внимательно анализирует, поэтому вопросы довольно тонкие.

  • Расскажи, почему рассматриваешь предложения? hr-behavioral/motivation
  • Как сравнить два числа float? go/basics
  • В каком формате хранить денежные средства? sql/schema-design
  • Подбрасываем монетку. какая вероятность, что упадет нужная сторона? misc/general
  • Как организуешь микросервис, который делает долгие вычисления; architecture/microservices
  • Микросервис перевода денег на счет мобильного оператора. architecture/microservices
Есть сервис списания денег с 3 операциями:
- холд, возвращает id холда
- подтвердить списание по id холда
- отменить холд
Есть сторонний провайдер для перевода денег на счет абонента:
- принимает id транзакции и номер абонента
В конце дня сторонний провайдер присылает рeeстр с успешным переводом средств за текущий день: id транзакции, номер абонента.
Как организовать в твоем сервисе взаимодействие?