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

Клауд Солюшенс

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

  • Какие задачи вы решали на последнем месте работы? Какие алгоритмы и подходы использовали? hr-behavioral/about-you
  • Опишите состав команды и вашу роль в ней. Какие ключевые результаты вам удалось достичь? hr-behavioral/teamwork
  • Насколько глубок ваш опыт в DevOps? Какие инструменты и практики применяли регулярно? hr-behavioral/about-you
  • Есть ли у вас опыт работы с Docker? Если да, то в каких сценариях? containers/docker
  • Какие инструменты CI/CD вы использовали в связке с Go? Как организовывали тестирование и деплой? devops/ci-cd
  • Следите ли вы за обновлениями Go? Какие изменения последних версий считаете наиболее значимыми? go/basics
  • Что изменилось в работе с map в новых версиях Go? go/maps
  • Как изменился алгоритм поиска в map по сравнению с ранними версиями? go/maps
  • Почему в Go больше нет понятия «эвакуация» применительно к map? go/maps
  • В чем разница между make и new? Когда что использовать? go/stdlib-tooling
  • Как реализованы многомерные или вложенные структуры в Go? go/structs-methods
  • Как работает функция append под капотом? Почему, на ваш взгляд, выбрана именно такая сигнатура? go/slices-arrays
  • Если присвоить возвращаемое значение функции новой переменной, что происходит со старой переменной? go/basics
  • Как работает пакет sync? С какими примитивами из него вы работали? go/sync
  • В чем суть sync.Pool? Как и когда его правильно использовать? go/sync
  • Как garbage collector взаимодействует с объектами в sync.Pool? go/sync
  • Как garbage collector обрабатывает переменные, выделенные на стеке? go/memory-gc
  • Когда память выделяется на стеке, а когда - в куче? Какие правила использует компилятор Go? go/memory-gc
  • Всегда ли возвращаемое значение функции попадает в кучу? Приведите примеры. go/memory-gc
  • Какие типы значений можно возвращать из функции без аллокации в куче? go/memory-gc
  • Как новый механизм arena влияет на управление памятью? В каких задачах может быть полезен? go/memory-gc
  • Что такое go:noescape? Когда его используют? go/memory-gc
  • Что такое семафор в контексте конкурентного программирования? go/concurrency
  • Как бы вы реализовали функцию tryLock для семафора в Go? go/sync
  • Что такое паттерн «синглтон»? Для чего он нужен и как его правильно реализовать в Go? architecture/patterns
  • Предположим, sync.Once отсутствует в стандартной библиотеке. Как вы реализуете потокобезопасный синглтон с ленивой инициализацией, используя другие примитивы из пакета sync? architecture/patterns
  • Почему возникает log contention? Как его диагностировать и избежать? go/sync
  • В чем разница между Mutex и RWMutex? Приведите пример, где один предпочтительнее другого. go/sync
  • Что такое singleflight из пакета golang.org/x/sync? Какую проблему решает? go/sync
  • Есть ли у вас опыт работы с OpenAPI в проектах на Go? Какие инструменты генерации кода использовали? go/basics
  • Как в Go работает конструкция oneof? go/stdlib-tooling
  • Доводилось ли вам использовать библиотеку MapStruct? Как решали задачу маппинга между структурами в Go? go/structs-methods
  • Что такое json.RawMessage и когда его использование оправдано? go/stdlib-tooling
  • Какие подходы к работе с null значениями в JSON вы знаете в Go? go/basics
  • Какие паттерны проектирования из классической книги «банды четырех» вы применяли на практике в Go? Приведите примеры. architecture/patterns

Задача: Дан HTTP POST-эндпоинт, который принимает JSON. Поле kind - строка-дискриминатор. Поле entity содержит данные, соответствующие одной из Go-структур: User или Car. Эти структуры полностью независимы. Предложите реализацию парсинга такого запроса. go/stdlib-tooling

Заголовок раздела «Задача: Дан HTTP POST-эндпоинт, который принимает JSON. Поле kind - строка-дискриминатор. Поле entity содержит данные, соответствующие одной из Go-структур: User или Car. Эти структуры полностью независимы. Предложите реализацию парсинга такого запроса. go/stdlib-tooling»
{
"kind ": "user ",
"entity ": { ...}
}

или

{
"kind ": "car ",
"entity ": { ...}
}
  • Какие подводные камни нужно учесть? go/stdlib-tooling
  • Сделайте решение расширяемым: если через месяц добавятся kind = "bicycle" и kind = "house", изменения в коде должны быть минимальными и локализованными. architecture/patterns
  • Как избежать двойного парсинга JSON? go/stdlib-tooling
  • Как поступить с неизвестным kind? go/stdlib-tooling
  • Как организовать регистрацию новых типов через init() или карту конструкторов? go/stdlib-tooling
  • Нужно ли использовать json.RawMessage или map[string]interface{}? go/maps