Опыт интервью Flipkart для SDE-2 | 2 года опыта

Опубликовано: 31 Августа, 2022

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

Функции:

  1. Рестораны могут подавать только одно специализированное блюдо.
  2. Рестораны могут обслуживать несколько зон.
  3. Одновременно пользователи могут заказывать из одного ресторана, а количество еды может быть больше одного.
  4. Пользователи должны иметь возможность оценивать любой ресторан с комментариями или без них.
  5. Рейтинг ресторана – это средняя оценка, которую дают все посетители.

Мне дали 2 часа -> 90 минут на кодирование, а затем 30 минут на объяснение и демонстрацию приложения участнику дискуссии.
Практикуйте платные вопросы по машинному кодированию, потому что интервьюер может попросить вас показать экран или следить за вами на протяжении всего времени.

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

Я сохранил решение в своем репозитории GitHub: https://github.com/iqblmoh/machineCoding .

Раунд 2 (Раунд DSA -1 час): Второй раунд был раундом кодирования, мне задали 2 вопроса, 1 час, 1 эксперт. Интервью началось с краткого рассказа обо мне и опыте работы.

  1. Сортировка массива 0 1 и 2 за один проход -> https://practice.geeksforgeeks.org/problems/sort-an-array-of-0s-1s-and-2s4231/1
  2. Максимальная сумма пути в двоичном дереве -> https://practice.geeksforgeeks.org/problems/maximum-path-sum-from-any-node/1

Ожидается , что вы сможете писать чистый код и объяснять его на пробном прогоне.

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

Раунд 3 (Раунд проектирования системы (LLD +HLD) — 1,5 часа): Третий раунд был раундом проектирования, 1 участник дискуссии. Меня попросили спроектировать BookMyShow.

LLD
Как подойти:

  1. Сначала выпишите все особенности, подробно обсудите особенности с интервью. (очевидных особенностей нет, что бы ни обсуждался дизайн, что только).
  2. Начните разрабатывать схему таблицы/класса, перечислите таблицы, которые потребуются, со всеми столбцами и их сопоставлением. Вы должны быть в состоянии защитить свой дизайн БД. ваша БД должна следовать формам нормализации БД. ваша БД должна быть в состоянии выполнить все функции, описанные в пункте 1.
  3. Запишите необходимые API, только такие имена, как POST /user/signUp (имя,,……) вот так.
  4. Будьте очень ясны с дизайном и красиво объясняйте

ДВУ

  • Как только я закончил с LLD, интервьюер попросил меня создать для него HLD.
  • Разделите службы, если это возможно, например, пользовательская служба отличается от cinemaService и т. Д.
  • Используйте очереди Kafka для соединения сервисов вместе.
  • Посмотрите видео Гаурава Сена на YouTube, которое также поможет

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

Раунд 4 (Раунд менеджера по найму - 1 час): Это был последний раунд. Это будет полностью на вашей удаче, какое у вас будет собеседование на HM, некоторым людям дается легко, другим тяжело.

  • Интервью началось с краткого вступления с интервьюером,
  • ДМ спросил о моем опыте работы и углубился во многие проекты.
  • Я работал над кластером Redis, поэтому было долгое обсуждение redis-sentinel и redis-cluster.
  • Спросил про ООП в глубь. Java-интерфейсы, абстрактные классы, одноэлементные классы.
  • Спросил об очередях обмена сообщениями, таких как Kafka, rabbitmq и все такое.
  • В конце HM объяснил мне проекты и обсудил команду.

Через 3 дня мне позвонили из HR и сказали, что меня выбрали.

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