Интервью в Nvidia.
Введение
Собеседование в Nvidia я проходил на позицию Platform Graphics Engineer в ноябре прошлого года.
Судя из описания вакансии менеджером, мне предстояло бы заниматься оптимизацией стриминга GeforceNOW, внося правки в игровые движки, которые предоставляют вендоры.
Подавался я на сайте Nvidia Careers без рефералки, ответ пришел в течение пары недель, что весьма быстро.
На позицию требовались знания графических API, устройства CPU/GPU. Кроме того желателен опыт с игровыми движками, в особенности Unreal Engine.
Я на тот момент не был силен в графике, но менеджер успокоил, сказав, что будет возможность наверстать.
Стоит отметить, что по моим наблюдениям в крупных компаниях первый же созвон состоится с техническим менеджером, который расскажет про вакансию и проведет скрининг. Поэтому ваши заготовленные вопросы HR'ам почему вы заинтересовались компанией <<Рога и Копыта>> вам не понадобятся.
В моем случае, спрашивали азы об устройстве GPU, попросили набросать кода на С++, который профайлит обычный цикл for.
Далее мне было назначено аж 4 часовых интервью в разные дни по схеме ниже, поэтому особой нагрузки я не почувстовал. Вместе с письмом были приложены ссылки на hackerrank, посему стало понятно - будет литкод.
Собеседования
После небольшого интродакшена мне сразу дали рандомную задачку из пула на сайте. Там оказалась задача на интервалы медиум уровня, которую я решал раз 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. И даже если он хуже меня решил литкод, он все еще остается более подходящим кандидатом.