Опыт интервью Media.net для SRE (в кампусе) 2022 г.

Опубликовано: 25 Января, 2023

Media.net посетил наш кампус в качестве инженера по надежности сайта (DevOps) в августе 2022 года. Критерии CGPA были 6 и выше.

Было 5 раундов.

Раунд 1: (Онлайн-тест): Это был тест MCQ, я не помню продолжительность и количество вопросов. У него были вопросы по операционным системам, компьютерным сетям, структурам данных и алгоритмам, СУБД и общим навыкам.

Около 23 человек были отобраны для Machine Round, и я был одним из них.

Раунд 2: (Машинный раунд — офлайн, 3 часа): Этот раунд проводился в нашем компьютерном центре. Нам дали задание по программированию сокетов.

Описание задачи: Имеется сервер с хранилищем ключей-значений. Может быть несколько клиентов, которые могут отправлять на сервер такие запросы, как «GET», «PUT» и «DELETE».
Хранилище ключей-значений, серверный и клиентский код написаны с нуля. Нам разрешили гуглить все, что угодно, например, синтаксис, ошибки и т. д. Нам даже дали возможность выбрать любой язык, который нам удобен, я выбрал Python.

  • Хранилище ключ-значение — это, по сути, словарь в python. Итак, я написал класс, в котором есть словарь и некоторые функции для работы с операциями «GET», «PUT» и «DELETE».
  • Я написал код для сервера, который был бы готов принимать клиентов и мог начать общение по протоколу TCP, аналогичным образом я написал код для клиента, который был бы готов принимать данные от пользователя для запросов и отправлять их на сервер.
  • После того, как я выполнил задачу, у меня еще оставалось немного времени, меня попросили внедрить систему TTL (Time to live) для хранилища. Это означает, что у ключа будет компонент времени жизни, срок действия ключа истекает через определенный период времени. Я реализовал это, и время закончилось.
  • Поскольку я использовал потоки для работы с несколькими клиентами, мне пришлось использовать потоки. Меня спросили, является ли мой код потокобезопасным, и я ответил отрицательно, потому что моей главной целью было завершить основную задачу и позже реализовать потокобезопасность. Впрочем, интервьюеров это вполне устраивало.

Этот тур прошли 3 студента, я был одним из них.

Раунд 3: (Техническое интервью — офлайн, 1 час): Этот раунд был посвящен основам CS, в основном связанным с операционными системами и компьютерными сетями.

Интервьюеры поздоровались, представились и попросили меня представиться. Интервьюер просмотрел мое резюме и спросил меня о стажировке.

Затем обсуждение перешло к компьютерным сетям, некоторые из вопросов, которые я помню, были:

  • Что такое TCP и UDP и как они работают.
  • 3-стороннее рукопожатие.
  • Что происходит, когда мы вводим google.com в браузере?

Я упомянул Git как систему контроля версий в своих проектах в своем резюме, поэтому он задал мне вопрос, связанный с ней.

  • Допустим, у нас есть приложение. Версия 2 приложения была развернута, и теперь, после 5000 коммитов, мы развернули версию 3 приложения. Мы выяснили, что в финальной версии 3 есть ошибка, которая закралась из одного из коммитов. Как бы вы нашли коммит, в котором возникла ошибка?
  • Дополнительный вопрос, аналогичная ситуация дается, но на этот раз ошибка началась в одном из коммитов, а также была устранена в более позднем коммите, что сделало версию 3 безошибочной. На этот раз мы должны выяснить, откуда взялась ошибка.

Раунд 4: (Проектирование системы — офлайн, 1 час): Этот раунд был раундом проектирования системы.

  • Интервьюеры поздоровались, представились и попросили представиться.
  • Мне была предоставлена возможность выбора между разработкой приложения для международного чата (например, WhatsApp) или международной службы потокового видео (например, YouTube).
  • Я пошел с YouTube.
  • Я медленно начал складывать все свои цели на листе бумаги и начал развивать их.
  • Интервьюеры спросили меня, как бы вы масштабировали эту конкретную систему для более широкой аудитории, и я изо всех сил старался найти решения.

Раунд 5: (Управленческий раунд — онлайн, 30 минут). Этот раунд представлял собой общее обсуждение того, что делает SRE и как это влияет на компанию. Он рассказал о культуре и ценностях компании. Более того, это была общая дискуссия о зарплате и о том, каким будет мой рост в компании.

Наконец-то мне поступило предложение от компании!

Советы:

  • Постарайтесь углубиться, когда вы используете некоторые термины, вы должны быть в состоянии ответить на все вопросы интервьюера о них.
  • Ничего страшного, если вы не смогли ответить на что-то. По крайней мере, попробуйте ответить на него по-своему логично и что бы вы об этом подумали.
  • Держите сеанс интерактивным. Сообщите интервьюеру, что происходит у вас в голове.
  • Требуется хорошая глубина знаний в области операционных систем и компьютерных сетей.

Всего наилучшего!