Expedia Interview Experience для SDE-2 (3 года опыта)

Опубликовано: 13 Февраля, 2023

Процесс найма в Expedia на роль SDE-2 java Backend состоит из 5 этапов. 1 тест по кодированию на звание хакера с последующими 4 раундами собеседований. Мой опыт в каждом из раундов был следующим:

Оценка Hacker Rank: это была 90-минутная оценка с 3 вопросами сложности, эквивалентными средним вопросам leetcode. Вы можете ожидать вопросы о строках, динамическом программировании и матрицах/двумерных массивах. Я смог закодировать все 3 вопроса со всеми пройденными тестами.

После этого раунда мне позвонили из HR через 15-20 дней по поводу планирования моих интервью. Однако прошло более 50 дней, прежде чем мое интервью наконец-то было назначено. Мои интервью были запланированы как часть кампании, в рамках которой все мои обходы должны были проводиться в один и тот же день. Я получил приглашения на Раунд 1 и Раунд 2 одновременно в одном письме, и рекрутер сказал мне, что мне нужен положительный результат хотя бы в одном из раундов, чтобы перейти к Раунду 3.

Раунд технического собеседования 1 (кодирование и DS/Algo): этот раунд проводился на платформе hacker rank, где интервьюер задал мне 2 вопроса. Они были следующими:

  • Найдите самую длинную подстроку с неповторяющимися символами: я начал с решения грубой силы и смог оптимизировать его до решения O (n). Интервьюер был очень дружелюбен и открыт для идей, и я предложил решение, которое не совсем походило на книжное решение этой проблемы. Он провел несколько тестовых случаев и смог добиться желаемого результата в каждом из тестовых случаев.
  • Внедрение LRU-кэша. В этой задаче я использовал HashMap и LinkedList для достижения желаемого решения. Интервьюер ожидал, что я должен был использовать связанный HashSet, но был доволен реализованным мной решением, поскольку оба решения имели одинаковую временную и пространственную сложность.
    Я не смог полностью написать функции LinkedList из-за нехватки времени, но написал псевдокод для каждой из них, и интервьюер был этим доволен.

Совет: не принимайте ограничения проблемы и старайтесь думать вслух, пока вы приближаетесь к проблеме. Кроме того, продолжайте проверять у интервьюера, синхронизируется ли он с вами. Если есть пробел в общении, попробуйте изменить свой пример, чтобы убедиться, что вы можете четко передать то, что думаете.

Второй раунд технического собеседования (кодирование и решение проблем): этот раунд также проводился на платформе hacker rank и также состоял из 2 вопросов. Они были следующими:

  • Удалить дубликаты в связанном списке. Существует несколько подходов к этому вопросу. Я начал с грубого решения и этого вопроса, а затем перешел к оптимальному решению, где я использовал набор для отслеживания записи пройденных элементов. Я написал решение таким образом, чтобы обход и удаление дубликатов можно было выполнить за один проход. Сначала интервьюер был сбит с толку моим объяснением, но я попробовал другой пример, и интервьюер был доволен моим решением, как только понял его. Я также смог пройти все тестовые случаи.
  • Зигзагообразный обход бинарного дерева. В этом вопросе я использовал стек для модификации кода для обхода порядка уровней и смог написать для него рабочий код. После этого мы также обсудили несколько других подходов с использованием альтернативных структур данных, но, поскольку решение уже имело оптимальную сложность, интервьюер не сказал мне писать код для любого другого подхода.

В этом раунде я также пытался думать вслух и следить за тем, чтобы интервьюер был синхронизирован со мной, пока я подходил к проблеме. Я убедился, что обсудил все крайние случаи, а также временную и пространственную сложность для каждого предлагаемого мной подхода.

Поскольку оба эти вопроса были относительно простыми, я смог ответить на них примерно за 50 минут. После этого интервьюер дал мне дополнительный вопрос SQL, где я должен был найти сотрудника с 4-й самой высокой зарплатой. После этого у нас состоялась общая дискуссия о культуре работы в Expedia, и в целом интервью прошло очень хорошо.

Поскольку мой первый раунд прошел очень хорошо, я получил приглашение на свое третье техническое собеседование в течение 15 минут после первого раунда, которое было назначено на тот же вечер. Мой рекрутер сказал мне, что 3-й раунд был самым важным этапом в процессе собеседования, и мне нужен был положительный результат в этом раунде для дальнейшего рассмотрения. Он также сказал мне, что интервьюер может задавать вопросы, связанные как с высокоуровневым, так и с низкоуровневым дизайном, но, поскольку у меня всего 3 года опыта, я могу попросить интервьюера использовать только LLD.

Раунд технического собеседования 3 (раунд системного проектирования): этот раунд также проводился на той же платформе hacker rank, где первый вопрос был связан с высокоуровневым проектированием. Некоторые проблемы были перечислены в приложении для доставки продуктов (аналогично Blinkit/Dunzo), и задача состояла в том, чтобы выявить в нем проблемы проектирования системы, а затем предоставить возможные решения для них.

  • Затем интервьюер перешел к подробному обсуждению той же системы и задал вопросы о том, как я могу обеспечить такие вещи, как масштабируемость в системе.
  • Мы обсудили несколько аспектов системы, начиная от выбора баз данных для каждого возможного микросервиса и заканчивая различными подходами к кэшированию, многопоточности и т. д. Это заняло около 40 минут, и интервьюер был очень открыт для идей, которые я представил, у нас была очень конструктивная дискуссия. за эти 40 минут.
  • После этого интервьюер дал мне задачу LLD, где мне нужно было написать код для системы генерации счетов. Входными данными будет список предметов, а ожидаемым результатом будет счет, содержащий список предметов с налогом, добавленным к цене каждого предмета, и содержащий общий налог и общую сумму в конце.
  • Интервьюер ожидает, что вы напишете все модельные классы, услуги и т. д., и вам также нужно будет объяснить каждое свое решение.
  • Так как у меня оставалось всего 20 минут, то я прошел его очень быстро. Я написал все службы, перечисления и модели, но из-за нехватки времени я не смог реализовать несколько основных функций, но интервьюер сказал мне пропустить их и просто написать псевдокод для их логики.

В целом собеседование прошло хорошо, и я получил приглашение на раунд менеджеров по найму после 1 часа собеседования. Мой раунд менеджера по найму был перенесен на более поздний срок, и он был отложен на неделю, так как мне подобрали подходящую команду. Опыт этого собеседования был следующим.

Раунд собеседования с менеджером по найму: в этом раунде не задавались технические вопросы, вместо этого это был скорее раунд культурной адаптации. Рекрутеры поделились со мной документом, содержащим ценности группы Expedia и вопросы, которые я мог ожидать в этом раунде. Я подробно изучил эти ценности и убедился, что мои ответы о моем предыдущем опыте работы соответствуют этим ценностям.

Мне давали различные гипотетические ситуации, связанные с компромиссом в рабочей этике или отсутствием связи с членами команды, и я убедился, что представил подходящий пример из своего жизненного опыта, будь то учеба в колледже или моя предыдущая компания, где я продемонстрировал одну из ценностей EG. ситуации. В целом, этот раунд также прошел для меня довольно хорошо, и в качестве совета я бы посоветовал всем быть расчетливыми в своих ответах, но не лгать, поскольку интервьюеры могут легко понять это за 1 час обсуждения.

Я получил письмо с предложением в течение недели после моего последнего собеседования, и я надеюсь, что мой опыт собеседования поможет вам хорошо подготовиться к собеседованию.