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

SberTech SynAI

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

  • Какие задачи вы решали на последнем проекте? hr-behavioral/about-you
  • Какая была структура команды и инженерных процессов в проекте? Сколько человек входило в кросс-функциональную команду? hr-behavioral/teamwork
  • Как был организован рабочий процесс: использовали ли Scrum или Kanban, как проходила проработка требований? linux-os/processes
  • Кто отвечал за проектирование архитектуры и технических решений? architecture/general
  • Приходилось ли вам участвовать в аварийном восстановлении сервиса на продакшене? devops/observability
  • Проводили ли вы код-ревью? hr-behavioral/general
  • Что для вас важно при проведении код-ревью, на что вы обращаете внимание в первую очередь? hr-behavioral/motivation
  • Занимались ли вы менторством молодых сотрудников? Как оценивали их результаты, какие первые задачи давали? hr-behavioral/teamwork
  • В чем недостатки микросервисной архитектуры по сравнению с монолитами? architecture/microservices
  • Какие встроенные примитивные типы данных существуют? go/basics
  • Расскажите о потенциальных сложностях при использовании встроенной функции append для слайсов. go/slices-arrays
  • Чем пустой интерфейс отличается от any? go/interfaces
  • Для чего используется пустой интерфейс? go/interfaces
  • Для чего используется пустая структура? go/structs-methods
  • Что такое концепция встраивания? Чем она отличается от наследования в классических объектно-ориентированных языках? go/interfaces
  • Что такое поток операционной системы? linux-os/processes
  • Что такое горутина? go/concurrency
  • Чем горутина отличается от потока операционной системы? linux-os/processes
  • Какие типы каналов бывают? Когда какой тип стоит использовать? go/channels
  • Как устроены буферизированные и небуферизированные каналы в Go? go/channels
  • Что из пакета sync вы использовали в работе? go/sync
  • Какие методы есть у WaitGroup? go/sync
  • Что такое atomic? go/sync
  • Что такое контекст? go/context
  • Что такое graceful shutdown? Как его реализовать для HTTP-сервера? go/stdlib-tooling
  • Какие паттерны конкурентности вы использовали в работе? go/concurrency
  • Какие виды тестирования вы знаете и с какими работали? testing/general
  • Что такое табличное тестирование? testing/unit-mocks
  • Работали ли вы с юнит-тестами через командную строку? testing/unit-mocks
  • Как вы отлаживаете приложение при возникновении ошибки? go/errors-panic
  • Как можно оптимизировать сложные запросы? sql/query-optimization
  • Как вы отслеживаете дедлоки при работе с горутинами? go/concurrency
  • Есть ли у вас опыт работы с профилировщиком? go/perf-profiling
  • Есть ли опыт настройки планировщика? Для чего может потребоваться настройка планировщика? go/concurrency
  • Как блокирующиеся системные вызовы влияют на работу планировщика? go/runtime
  • Какие состояния могут быть у горутины? go/concurrency
  • Как вы выявляете и устраняете узкие места, связанные с планировщиком, в высоконагруженных приложениях? go/perf-profiling
  • Использовали ли вы трассировку выполнения? go/perf-profiling
  • Представьте ситуацию: к вам обращается аналитик, чтобы обосновать заказчику выбор архитектурного подхода. Какие критерии вы назовете для выбора между gRPC и REST? architecture/general
  • С какими операционными системами вы работали? linux-os/general
  • Как посмотреть, какие порты закрыты в Windows? network/general
  • Занимались ли вы машинным обучением? hr-behavioral/about-you
  • Что такое Kubernetes? containers/kubernetes
  • Чем Pod отличается от Deployment? devops/ci-cd
  • Какие пробы существуют в Kubernetes? containers/kubernetes
  • Как передавать конфигурационные данные в приложение? devops/infra

Задача: На вход подаются два неупорядоченных слайса любой длины. Надо написать функцию, которая возвращает их пересечение. go/slices-arrays

Заголовок раздела «Задача: На вход подаются два неупорядоченных слайса любой длины. Надо написать функцию, которая возвращает их пересечение. go/slices-arrays»
func intersection(a, b []int) []int {
var result []int
return result
}
func main() {
// Пример 1
a := []int{23, 3, 1, 2}
b := []int{6, 2, 4, 23}
// [2, 23]
fmt.Printf("%v\n ", intersection(a, b))
// Пример 2
a = []int{1, 1, 1, 1}
b = []int{1, 1, 1, 1, 1, 1, 1, 1}
// [1, 1, 1, 1]
fmt.Printf("%v\n ", intersection(a, b))
}

Какая алгоритмическая сложность данного алгоритма?

Задача: Даны два канала. Первый канал заполняем числами от 1 до 10. Далее числа считываем из первого по мере поступления, возводились в квадрат и результат записываем во второй канал. Необходимо реализовать числовой конвейер. go/channels

Заголовок раздела «Задача: Даны два канала. Первый канал заполняем числами от 1 до 10. Далее числа считываем из первого по мере поступления, возводились в квадрат и результат записываем во второй канал. Необходимо реализовать числовой конвейер. go/channels»
func main() {
naturals := make(chan int)
squares := make(chan int)
for x := range squares {
fmt.Println(x)
}
}