interview
January 12, 2024

Интервью в Nvidia.

Введение

Собеседование в Nvidia я проходил на позицию Platform Graphics Engineer в ноябре прошлого года.

Судя из описания вакансии менеджером, мне предстояло бы заниматься оптимизацией стриминга GeforceNOW, внося правки в игровые движки, которые предоставляют вендоры.

Подавался я на сайте Nvidia Careers без рефералки, ответ пришел в течение пары недель, что весьма быстро.

На позицию требовались знания графических API, устройства CPU/GPU. Кроме того желателен опыт с игровыми движками, в особенности Unreal Engine.

Я на тот момент не был силен в графике, но менеджер успокоил, сказав, что будет возможность наверстать.

Стоит отметить, что по моим наблюдениям в крупных компаниях первый же созвон состоится с техническим менеджером, который расскажет про вакансию и проведет скрининг. Поэтому ваши заготовленные вопросы HR'ам почему вы заинтересовались компанией <<Рога и Копыта>> вам не понадобятся.

В моем случае, спрашивали азы об устройстве GPU, попросили набросать кода на С++, который профайлит обычный цикл for.

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

1 - четверг
2 - пятница, утро и вечер.
1 - в понедельник.


Собеседования

Четверг.

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


Пятница, утро.

Так же интро, и простые вопросы по графике, пайплайны, и что, например, делает шейдер тесcеляции. После последовали вопросы easy и medium уровня - связные списки и деревья. На второй задаче я споткнулся, т.к. перенервничал и долбился в одно и тоже не правильное решение.

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


Пятница, вечер.

Интро, и сразу hackerrank. Там, на удивление, не было литкода, вместо него попросили распарсить CSV-файл и посчитать частоту кадров с разными условиями ссылаясь на данные. Я набросал простой парсер на питоне, и интервьюера это вполне устроило, если конечно не считать того, что я минут 10-15 распрашивал про условие задачи, и что конкретно дано в CSV-файле.


Понедельник, вечер.

Достаточно продолжительное интро, где интервьюер копал в те задачи на оптимизацию, которыми я занимался, и далее один литкод вопрос на графы medium уровня.


Результат

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

Хотя, быть может, меня обманули...


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

Ответ пришел - отказ.

Почему, чего не хватает, и где я накосячил, мне не объяснили, а следующее письмо с проcьбой об оном - проигнорировали, обойдясь:

We have found someone who better fits the position.

Выводы

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

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

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

Вероятнее всего, мне отказали не потому, что я плохо показал себя, а потому, что пришел человек, который знает DX12 или Vulkan. И даже если он хуже меня решил литкод, он все еще остается более подходящим кандидатом.

Удачи!