По моей статистике, примерно 80% кандидатов валятся на стандартных теоретических вопросах. Временные ограничения, статический временной анализ, подходы к решению проблем с таймингами в проекте, синтезируемое подмножество Verilog/SystemVerilog, понимание, во что может синтезироваться код, а также интерфейсов, с которыми работал кандидат, — это лишь часть тем, где часто возникают проблемы.
Как устроиться на работу инженером: советы от экспертов, проводящих собеседования

Профильные сайты регулярно публикуют советы о том, как проходить собеседования в софтверной разработке. Но собеседования специалистов, ориентированных на работу с «железом», таким вниманием, увы, обделены. Чтобы это исправить, мы поговорили с коллегами, которые проводят собеседования с будущими инженерами YADRO по направлениям схемотехники, верификации, RTL-дизайна, FPGA и аппаратной разработки. А затем обобщили их опыт и мнение в советах для тех, кто хочет связать карьеру с этими областями.

что важнее для работодателя — знания или опыт
что делать, если не можешь ответить на какие-то вопросы
как относиться к нестандартным собеседованиям
что даст вам дополнительные очки по итогам
Теоретическая база важнее проектов
Самое сложное для кандидатов в моем направлении — иметь достаточную теоретическую базу, чтобы обосновать свои ответы и объяснить их эффект. Большинство путается даже в распространенных решениях и схемах: буферах, пересинхронизаторах, интерфейсных протоколах, принципах работы инструментов. Некорректно задают временны́е ограничения для синхронных и асинхронных передач в разных условиях. Путаются в стандартных протоколах типа AMBA и базовых конструкциях языка Verilog.
Пожалуй, самое сложное в моем направлении — это обладать достаточными теоретическими знаниями в микроэлектронике. Обычно при разработке микроэлектроники и полупроводниковой техники мы полностью задействуем всю теорию, которую дают в профильных университетах. Увы, часто кандидаты неверно отвечают на теоретические вопросы или даже используют в корне неправильные подходы к решению задач, отклоняясь от рабочего решения уже на старте.

Теоретическая база — это в первую очередь «база»
Собеседование в нашу команду строится по общему шаблону: теоретическая база, знание SystemVerilog, UVM (универсальной методологии верификации), архитектуры. А уже конкретные вопросы зависят от уровня кандидата. Так мы можем объективно сравнивать кандидатов между собой. Иногда просим написать что-нибудь несложное на SystemVerilog — это задание на знание языка и понимание нюансов работы. И только в сложных случаях, когда не можем быстро понять уровень кандидата, можем дать тестовое задание «на дом», которое будем обсуждать на следующем этапе собеседования. Но это скорее исключение.
В тестовые задания входит разработка простого логического блока на языке Verilog со стандартными интерфейсами. На это мы обычно закладываем неделю. Чтобы выполнить задание, нужно хорошо знать синтаксис Verilog/SystemVerilog, стандартные интерфейсы, иметь симулятор под рукой и несколько свободных вечеров.
Я никогда не прошу и не советую просить, чтобы кандидат написал FizzBuzz или что-нибудь столь же монструозное. В нормальной работе это никому не нужно. На экзаменах в институтах профессора любят спрашивать всякие академические вещи, чтобы завалить студентов. А на технических собеседованиях это зачастую делают намеренно, чтобы сбить зарплатные аппетиты. Я против этого: в вопросах на собеседованиях нужно отталкиваться четко от области будущих работ, и при подготовке кандидату тоже ориентироваться в первую очередь на нее.
Стаж работы сам по себе ничего не решает
Интересно бывает послушать, над какими проектами работал человек. Но эта часть биографии частенько оказывается приукрашена и в позиционировании кандидата не помогает. В резюме может быть 30 лет опыта с описанием задач, спрашиваешь по ним, а ответа нет. Потому что человек, например, все 30 лет копипастил одно и то же, не вдаваясь в суть. Вообще, обсуждение опыта снижает эффективность собеседований, делает их… расхлябанными, что ли. А я за более сфокусированный подход, за оценку реальных базовых знаний в предметной области.
Частая ситуация на собеседовании — недостаточно глубокое погружение в интерфейс, с которым у кандидата был опыт работы. Например, указан опыт работы с протоколом USB. На собеседовании после нескольких вопросов по архитектуре протокола оказывается, что кандидат просто вставлял готовый IP без понимания принципов его работы. Но в резюме это заявлено как полноценный опыт работы с протоколом.
Когда смотришь, где человек работал, это не значит, что он там таки работал и надо трепещать перед громкими именами или регалиями. Важно не где ты работал, а что и как ты делал. Иначе будет как в старом советском анекдоте: один хвалится, что у него тетя в исполкоме работает, а в конце все узнают, что работает она там уборщицей и ничего не решает.
Собеседования не по шаблону — это нормально
Я смотрю кандидатов уже после их технического интервью, так что мои собеседования проходят в формате свободной беседы, без заранее прописанного плана. По большинству наших технических направлений я могу задать вопросы и оценить кандидата прямо по ходу разговора. По некоторым ключевым позициям я стараюсь пообщаться подольше: это, например, касается руководящих должностей, связанных со схемотехникой и системной архитектурой. Здесь на беседу закладываю не 15 минут, а целый час.
У меня собеседования начинаются довольно свободно: отвечаю на вопросы кандидата, сам спрашиваю о его опыте. Затем, конечно, прогоняем, что было заготовлено: определения, технические задачи и стандартные вопросы. Например, от каких параметров зависит задержка стандартных элементов и как инженер может на нее влиять? Чем глобальная вариация отличается от локальной? Что представляют собой Setup и Hold проверки, какова их общая формула? Если с этим этапом специалист справляется, я стараюсь дать что-нибудь не столь однозначное, более сложное и близкое к нашим реальным задачам. Так я лучше понимаю, как работает мышление собеседника — а ему, в свою очередь, становится интересней, так как он больше узнает о наших активностях.
Все вопросы на моих собеседованиях лежат в практической плоскости, так что на них вполне можно ответить без подготовки, с умением рассуждать на основе имеющегося опыта. Стандартный план включает примерно 12 таких вопросов: где-то надо написать код, где-то что-то посчитать, где-то — предложить и обосновать решение другого уровня. Этот этап тоже не предполагает жесткого шаблона: я стараюсь наладить диалог, опираясь не только на наши требования, но и на опыт конкретного кандидата, при необходимости задаю дополнительные вопросы.

Волноваться нормально, а зазнаваться — нет
Пару раз были случаи, когда кандидат с внушительным опытом в резюме отвечал на собеседовании очень уклончиво или агрессивно. «А зачем вы меня это спрашиваете?» или «У меня в резюме все написано». Одно из таких собеседований завершилось минут за 15 минут репликой кандидата: «Мы говорим на разных языках, давайте закончим». В любом случае, даже если такой кандидат хорошо отвечает на вопросы, с ним потом будет сложно работать.
Но, с другой стороны, многие кандидаты на собеседовании волнуются. Это нормально, так как собеседование некоторые воспринимают как стрессовую ситуацию. Мы всегда стараемся задавать дополнительные и наводящие вопросы, чтобы исключить влияние волнения и неправильной интерпретации вопроса из-за этого. Да и в целом собеседования, на наш взгляд, проходят у нас максимально доброжелательно и спокойно. Волноваться — это нормально, а проявлять агрессию или пытаться показать, что собеседники спрашивают какую-то ерунду, — нет.
Частая ошибка — это желание показаться лучше, чем ты есть на самом деле. В этом нет смысла, ведь во время работы вы все равно продемонстрируете свой реальный уровень. Так что не стоит тратить на это время.
Обратная ситуация: когда кандидаты приходят с излишним волнением, очень переживают, что могут не справиться. Из-за этого и знания куда-то пропадают, и наше впечатление ухудшается. Важно подготовиться не только разумом, но и духом. Займите сильную позицию, будьте в себе уверены. Держите в голове, что собеседование — это обоюдная история: не только компания оценивает вас, но и вы — компанию.
Бывает, кандидат сильно плавает по какой-то теме, долго думает, нервничает и не дает ответа или выдумывает что-то, чтобы был хоть какой-то ответ. В итоге собеседование затягивается, и в результате удается пройтись лишь по нескольким темам, не всегда самым сильным у кандидата.
Противоположный пример: кандидат получает вопросы на тему, с которой не сталкивался, и отвечает, что не работал или мало работал с этим. А при неправильном ответе уточняет, как правильно. Это дает возможность лучше осветить темы, более близкие кандидату. Кроме того, мы всегда стараемся при вопросе дать подсказку, где можно посмотреть ответ или когда можно столкнуться с описанной ситуацией. Часто объясняем, как будет правильно и почему. Собеседование — это диалог, полезный обеим сторонам, нужно просто получать от него удовольствие.
Удивительно, но сложнее всего, по моим наблюдениям, кандидатам дается само общение: связно излагать свои мысли умеют далеко не все. Также многим трудно выдерживать темп собеседования, ведь в ограниченное время мы должны уместить множество вопросов. Здесь уверенность в себе будет главным помощником.
На интервью следует приходить в хорошем настроении, с расчетом на интересную беседу с потенциальными коллегами. Постарайтесь не нервничать — это достигается самоконтролем или приходит само после приличного количества собеседований. Не пускайтесь в долгие рассказы о том, что не спрашивают, достаточно будет информации, необходимой для ответа на вопрос. Но при этом будьте готовым к подробному разговору по отдельным темам, которые важны работодателю. Если чего-то не знаете, то лучше сразу в этом признаться, а не пытаться угадать или придумать ответ. Советую также заранее подготовить небольшой рассказ про свои основные компетенции, ценные для потенциального работодателя.
Каменная кладка крепче кирпичной…
Есть два основных подхода к найму: американский, метод «кирпича», и японский, метод «камня». В первом случае сотрудники формируют единообразную кладку из компетенций и навыков, полезных для проекта. Если один кирпич выпадает (человек уходит), то без последствий для «стены» его может заменить только аналогичный кирпич, с теми же характеристиками. В моменте это быстро решает потребности компании, но с долгосрочным вовлечением здесь могут быть проблемы. Ведь ты нанял просто набор компетенций и не сможешь прогнозировать, как проявит себя человек в будущем, в изменившихся условиях.
Мне больше нравится другой подход — японский, метод «камня». Каждый камень имеет свою уникальную форму и особенности, и ты вставляешь его в стену, учитывая их. Может подойти неидеально, пообтесаться, чуть сдвинуть соседей. Но в итоге получится «полигональная кладка», гораздо более устойчивая к «землетрясениям и разрушениям» в принципе. В долгосрочной перспективе такой подход для компании гораздо лучше, но требует от нее больше усилий как от работодателя. Переманить «набор компетенций» в другую компанию гораздо проще, чем переманить человека из места, что ему подошло и позволило развиться без ущерба для коллег.
Если у специалиста есть пробелы в какой-либо одной области, то это совсем не значит, что собеседование завалено. Мы стараемся задавать вопросы разного уровня сложности, тем самым понимая сильные и слабые стороны кандидата. Бывает, что у него много пробелов в одной области, но в других он отвечает уверенно. Если мы понимаем, что пробелы в знаниях кандидат может легко и быстро закрыть, то вполне можем предложить ему позицию в нашем отделе. У нас, как и везде, оценивается суммарный опыт кандидата.
Требования к соискателям сильно различаются в зависимости и от позиции, и от грейда. Общий знаменатель — это, пожалуй, лишь умение писать чистый и правильный код, искать в нем ошибки, проводить ревью. На более высоких грейдах сюда прибавляются навыки коммуникации: умение договариваться с коллегами, выстраивать горизонтальные и вертикальные связи, понимание принципов управления и менеджмента.
…но самая крепкая кладка — на энтузиазме
На собеседовании я всегда спрашиваю, как человек узнает что-то новое, откуда он вообще черпает знания. Часто прошу рассказать что-нибудь из того, что он узнал недавно. Спрашиваю, в каком направлении человек хочет развиваться, что хотел бы узнать, в чем разобраться. А после этого я задаю очень неприятный вопрос: а что мешало в этом разобраться до сих пор? Здесь по ответу бывает видно, что на самом-то деле большого желания разобраться и не было.
Энтузиазм в своей профессии — это для меня очень важный критерий. Также важно соответствие наших ценностей, как профессиональных, так и общечеловеческих.
Если вам нравится подход к собеседованиям в YADRO, то вы можете найти вакансии в командах экспертов статьи и других командах на сайте компании. А для студентов YADRO запускает летнюю стажировку Импульс — переходите на сайт, чтобы узнать все подробности.