Вернуться в видеотеку

Собеседование Golang программиста ЗП 7500$

Запись технического интервью по Go и backend-архитектуре на примере сервиса заказов. Вопросы охватывают DDD, интеграции между сервисами, базы данных, масштабирование и деплой.

Источник: it father.

Открыть на YouTube

Таймлайн

Коротко о видео

Техническое интервью с Golang-кандидатом построено вокруг проектирования сервиса заказов: слоёв приложения, DDD, бизнес-правил, асинхронных событий и надёжной доставки сообщений. Собеседующий разбирает с кандидатом transactional outbox как vendor-neutral подход к согласованию записи заказа и последующей публикации события, затем обсуждает gRPC/Protobuf, BFF и API Gateway, выбор хранилища и масштабирование PostgreSQL. В конце кандидат рассказывает о заявленном опыте с CI/CD, Docker, Kubernetes и OpenShift.

Затронутые темы

Что взять на заметку

  • Для сервиса заказов разделяют сущности, доменные сервисы и репозитории: репозиторий инкапсулирует доступ к хранилищу, а не бизнес-решения.
  • Бизнес-правила не стоит сводить к проверке формата входного REST-запроса: в разборе их предлагают размещать в доменной области и выражать через паттерн Specification.
  • Ретраи публикации сами по себе не гарантируют, что после успешной записи заказа событие будет отправлено. Для этого случая собеседующий предлагает transactional outbox: заказ и запись о событии сохраняются одной транзакцией, а отдельный процесс читает outbox и публикует сообщения.
  • Kafka обсуждается как распространённый брокер событий, но решение предлагают строить за интерфейсом publisher, чтобы прикладной код не зависел от конкретного брокера.
  • Для синхронного межсервисного вызова в Go кандидат выбирает gRPC с Protobuf; в обсуждении важны генерация клиентов, схемы и совместимость версий контрактов.
  • Для единого ответа фронту рассматриваются BFF или отдельный агрегирующий сервис; API Gateway при этом отделяют как более общий паттерн маршрутизации запросов внутри системы.
  • Для горячего OLTP-сервиса заказов обсуждается реляционная БД с транзакциями; при преобладании чтения PostgreSQL масштабируют репликацией, а до неё могут применять партиционирование и индексы.

Рекомендуем посмотреть

1 ч 41 мин
BackendMiddle

Открытое собеседование на Middle Go-разработчика в Wildberries: код-ревью

Учебное мок-собеседование Middle Go-разработчика с теоретическим блоком и подробным код-ревью сервиса генерации PDF. В конце разбираются ответы кандидата и вопросы зрителей по Go, TLS, кэшированию и конкурентности.

1 ч 32 мин
BackendMiddle

Собеседование в VK Middle Python: создаем ленту рекомендаций для соцсети!

Открытое мок-интервью Middle Python с разбором конкурентности и system design персонализированной ленты рекомендаций. После технической части команда Shortcut отвечает на вопросы о подготовке, менторстве и карьерном развитии.