Опыт интервью Prodigy Finance для SDE

Опубликовано: 7 Октября, 2022

1 тур (онлайн-показ)

Это была сессия «познакомьтесь с вами», на которой я встретился с менеджером команды разработчиков для короткого (30-минутного) разговора. Основная повестка дня этой встречи включала знакомство с компанией и ролью, на которую я претендовал. На тот момент было не так много вопросов, и эта встреча была проведена исключительно для того, чтобы определить, действительно ли я тот, кем я являюсь в своем резюме.

Советы:

  • Подготовьтесь к собеседованию заранее, изучив роль и компанию. Веб-сайт компании, профиль LinkedIn (если есть) и быстрый поиск в Google дадут вам представление о том, чего ожидать.

2 тур (оффлайн задание)

В теории задание по написанию кода было простым: написать API, который предоставляет (и изменяет) страны и их валюты — либо на Rails, либо на Python. Исходя из .NET, мой очень ограниченный (на тот момент) опыт работы с обоими языковыми вариантами сделал это интересной задачей. У меня была свобода выбора фреймворка для использования, и мне дали временные рамки +/- 4 часа, включая модульные тесты.

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

Советы:

  • Попробуйте следовать философии TDD: тестируйте (чтобы не получилось), затем кодируйте, пока тест не пройден.
  • Обрабатывать исключения.
  • При написании API интегрируйте Swagger (или аналогичный), чтобы упростить демонстрационный процесс.
  • Добавьте файл readme.md с изложенным процессом принятия решения. Делайте это во время разработки решения, чтобы процесс был свежим в вашей памяти.
  • Не переусердствуйте с проектом. Придерживайтесь плана и не выполняйте ничего, о чем вас не просят, если только у вас нет для этого абсолютно времени и навыков. Идея здесь не в том, чтобы увидеть, как вы создаете товарный продукт, а в том, чтобы продемонстрировать свои навыки, связанные с SDE: как вы подходите к проблеме и приходите к решению, а также как вы тестируете свое решение.

Раунд 3 (собеседование по кодированию)

В этом интервью приняли участие руководитель группы и один из старших членов команды. Офлайн-задание было подробно обсуждено, и были заданы вопросы о том, почему я выбрал тот путь, который выбрал для решения. Были обсуждены альтернативы, а также возможные улучшения, которые можно было бы сделать (и как они будут реализованы).

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

Советы:

  • Будьте готовы объяснить свой выбор дизайна. Позиции SDE больше сосредоточены на процессе разработки решения, чем на фактическом коде.
  • Освежите в памяти основы информатики, такие как алгоритмы и структуры данных, особенно те, которыми вы давно не пользовались.
  • Подготовьтесь к собеседованиям по программированию, выполняя онлайн-задачи. Я использовал codewars.com
  • При написании кода в реальном времени произносите свои мысли вслух. Интервьюер не умеет читать мысли и хочет увидеть, как вы работаете над решением.
  • Не бойтесь ошибиться — интервьюера больше интересует, как вы думаете, и если ваш мыслительный процесс приведет вас от неверного решения к правильному, это выяснится на сеансе.

4 тур (собеседование по дизайну)

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

Советы:

  • Задавать вопросы. На этом этапе собеседования, как и в реальной жизни, необходимо прояснить любые неясности. Интервьюер хочет увидеть, как вы разрабатываете решение: следуйте тому же процессу, что и при работе с конечным пользователем или бизнес-клиентом. Это ваш шанс проявить себя как SDE.
  • Не переусердствуйте. Опять же, будьте проще. Если интервьюер хочет от вас большего, он попросит об этом. Вместо этого будьте готовы расширять свое решение по ходу сеанса.

5 тур (финальное собеседование)

В этом интервью приняли участие HR и руководитель отдела развития. На этом этапе цель состоит в том, чтобы увидеть, соответствуете ли вы культуре компании, в которую вы подаете заявление. Были заданы более эзотерические вопросы, на которые не было правильного или неправильного ответа, а было только ваше собственное мнение. Это было очень непринужденное интервью.

Советы:

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