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

Открытое интервью на Go-разработчика

Открытое интервью на Go-разработчика с разбором ответов кандидата по backend-разработке и system design. В конце — обратная связь и ответы на вопросы о подготовке к собеседованиям и карьере.

Источник: Эйч Навыки — менторская программа

Открыть на YouTube

Таймлайн

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

Это запись открытого образовательного интервью на Go-разработчика: после презентации менторской программы Даниил собеседует Дениса по разработке, тестированию, базам данных, распределённым системам и внутреннему устройству Go. В интервью разбирают работу с legacy-кодом и инцидентами, пирамиду тестов, PostgreSQL, Redis, Kafka, Saga, идемпотентность, планировщик Go и слайсы. В финале интервьюер оценивает ответы Дениса как соответствующие уровню middle, отмечая необходимость усилить практику и system design, после чего участники отвечают на вопросы зрителей о подготовке, алгоритмах, тимлидстве и работе в компаниях.

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

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

  • Для критичной фичи Денис предлагает начинать с тестов, но только после уточнения требований; при инциденте первым шагом он назвал проверку возможности отката, затем сбор логов и метрик.
  • Для доработки незнакомого legacy-микросервиса обсуждают последовательность: самостоятельно изучить код, сформулировать вопросы, обратиться к прежним владельцам или смежным командам, проверить staging, логи, чаты и знания тестировщиков.
  • В блоке о тестировании разбирают unit-, integration- и end-to-end-тесты; отдельно поднимают риск Testcontainers и Docker-in-Docker, когда тестовый Docker получает доступ к машине.
  • К подготовке по базам и system design относят индексы и bloat в PostgreSQL, ACID, репликацию, Raft, шардирование, consistent hashing и CAP-теорему.
  • Идемпотентность объясняют на платеже: сервис сохраняет идентификатор уже обработанной операции, например в Redis, и пропускает повторное сообщение с тем же ID.
  • По обратной связи интервьюера, Денису для уровня middle+ стоит набрать больше практических кейсов system design, в частности по идемпотентности, а также укрепить базы данных и практику тестирования.
  • Для Go стоит повторить модель GMP и работу scheduler, сетевые ожидания через netpoller, а также устройство слайса: копирование заголовка, общий backing array и изменение поведения после выхода за capacity.

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