обучение
447
0
11 октября 2024
обучение

Ошибаться и учиться на реальных задачах: как еще студентом получить опыт работы с FPGA и ядрами микроконтроллера

447
0
11 октября 2024

Пока одни студенты готовятся к сессии и сдают долги, другие разрабатывают системы на кристалле и тестируют клиентские устройства. Герои этой статьи — молодые инженеры, выпускники стажировки YADRO Импульс 2024. Два месяца они стажировались в компании, а затем получили предложения о работе и продолжили работу над начатыми проектами.

В каком вузе учиться, чтобы в 20 лет стать младшим инженером в крупной компании, как за два месяца разобраться в запуске тестов на FPGA-платах и какие навыки приобретают стажеры в YADRO — узнаете в статье.

Из статьи вы узнаете
  • как студенты узнали о компании и попали на стажировку
  • какие инженерные задачи решали и как учились работать в команде
  • какие навыки приобрели на стажировке
  • чем занимались помимо работы над проектами
Егор Головин
Студент 3 курса Белорусского университета информатики и радиоэлектроники, факультет программного обеспечения информационных технологий. Инженер-стажер в отделе функциональной верификации и валидации.

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

На стажировке я принимал участие в функциональной верификации одного из аппаратных блоков СнК: анализировал, какие сигналы идут, и адаптировал тест под их спецификацию. Еще добавлял различные параметры в тесты, чтобы упростить работу с документацией. Как итог — в тестах, с которыми я работал, инженерам больше не нужно переписывать весь код, чтобы подстроиться под документацию, достаточно поменять значение в одном месте. Также я занимался верификацией на FPGA и составлял тест-планы.

Узнал о том, как работает загрузка ОС после подключения устройства, лучше разобрался с интерфейсом AXI-шины. Понравилось, что в команде я выполнял не искусственные таски, созданные специально для стажеров, но и не какие-то неподъемные проекты. Есть время и «потупить», и потыкаться, и ошибиться.

Егор Меганов
Студент 3 курса Университета Иннополис, факультет информатики и вычислительной техники. Инженер-стажер в отделе разработки приложений.

На стажировке я столкнулся с очень большим проектом — разработкой мобильной операционной системы (прим. ред. — kvadraOS). Работа с ней отличается от разработки одного приложения, потому что многие компоненты необходимо «подружить» между собой. Моя команда занималась разработкой таких элементов, как настройки, быстрые настройки и клавиатура.

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

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

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

Знаю, что есть компании, в которых стажерам поручают какую-то рутинную работу или вовсе придуманные задачи, лишь бы чем-то занимались. Все стажеры, с которыми удалось пообщаться, отмечали, что работали на реальном проекте и были полноценной частью команды, участвовали во всех встречах. Кто-то даже успел съездить в командировку.

Даниил Кадочников
Студент 3 курса СПбГУ, математико-механический факультет. Инженер-стажер в отделе верификации RTL.

Впервые я услышал о стажировке на Зимней школе RISC-V. С лекцией выступала девушка, которая попала в компанию после «Импульса», и у нас была возможность задать ей вопросы. Я думал, что не пройду отбор, но все равно подал резюме. Считаю, что даже опыт собеседования в крупную компанию ценен: можно быть хорошим специалистом, но получать отказы из-за неумения хорошо себя презентовать.

Я устроился на направление «Верификация систем на кристалле». У меня не было одной большой задачи, которой я бы занимался все два месяца стажировки, а было много небольших. Среди них выделю задачу по созданию вспомогательных блоков кода для сравнения энергопотребления функции Wi-Fi, уводящей процессор в спящий режим, с простым ожиданием в цикле. Я подробно разбирался, как работают прерывания на низком уровне, как их обрабатывать.

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

Для меня все было новым, ведь я никогда раньше не стажировался. Поэтому просто отмечу моменты, которые меня особенно порадовали. У меня был ментор, который и без моих вопросов очень подробно все объяснял. Это здорово, что меня не просто бросили с задачей и документацией, сказав «Читай», а потратили время, чтобы все объяснить хотя бы в общих чертах.

Яна Жук
Студентка 3 курса Белорусского университета информатики и радиоэлектроники, факультет программного обеспечения информационных технологий. Техник-программист в отделе функциональной верификации и валидации.

О компании я узнала в университете. Преподаватель архитектуры компьютерной техники и операционных систем много рассказывал о низкоуровневой разработке и приводил в пример компанию YADRO, один из центров разработки расположен у нас в Минске и является резидентом Парка высоких технологий Затем я побывала на OpenIT и минском митапе FPGA Systems, где познакомилась с инженерами, которые стали моими коллегами. Помимо этого, с четвертого семестра я присоединилась к лаборатории YADRO в БГУИР, где и узнала про стажировку.

Я занималась различными задачами не просто как стажер, но как полноценный сотрудник команды.

Я занималась разработкой тула для настройки одной из подсистем в СнК. Мои работы попали в релиз. Кроме того я занималась формирование регрессионных запусков и отладкой тестов на FPGA прототипах. На стажировке я научилась вручную настраивать и запускать тесты на платах, а также проходить всю цепочку событий этого процесса. Стала лучше разбираться в различных интерфейсах — например, I2C и AXI. Кроме того, увидела некоторое количество новых для себя аппаратных блоков.

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

Егор Булко
Студент 3 курса ИТМО, факультет системного прикладного программного обеспечения. Инженер-стажер в отделе исследований производительности и моделирования архитектур.

Я посещал лекции по многопоточному программированию от инженеров YADRO в своем вузе. Тогда, на первом курсе, я и заинтересовался низкоуровневой разработкой. На стажировку получилось пройти не сразу: я получил два отказа, но затем меня пригласили на направление разработки процессоров, куда я успешно прошел.

Я работал в отделе Performance modeling. За время стажировки мне и коллегам нужно было разработать модель младшего ядра микроконтроллера SCR1. Сделать это было нужно очень точно, в соответствии с RTL-моделью. Я разрабатывал модель памяти и таймер процессора, который позволяет измерять временные интервалы.

Также настраивал часть CI для проекта, реализовывал блок LSU (load-store unit), который обрабатывает доступ к памяти процессора. И научился подробно читать документацию и формировать функциональные требования системы, углубил знания в HDL (hardware description languages).

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

Азалия Хисматуллина
Выпускница Казанского федерального университета, факультет программной инженерии. Инженер-стажер в отделе ручного тестирования приложений.

Близилось завершение учебы в университете, и я присматривала компании, в которых бы хотела развиваться как QA-инженер. В рамках стажировки я тестировала приложения на планшете KVADRA_T, работающем на базе kvadraOS. За эти месяцы мне удалось поучаствовать в полном жизненном цикле тестирования. Несмотря на то, что я стажер, задачи не были рутинными: я принимала участие в регрессионном и smoke-тестировании, писала тест-кейсы и баг-репорты, общалась с дизайнерами, разработчиками и проджект-менеджером. Хотя опыта тестирования мобильных приложений у меня раньше не было, трудностей не возникало — помогала обратная связь от наставников.

Меня порадовало, что в YADRO ценно мнение каждого сотрудника — я участвовала в обсуждениях дизайна и деталей реализации, присутствовала на демо. Научилась работать с логами для локализации дефектов, выбирать оптимальные способы тестирования, применять техники тест-дизайна.

Помимо работы над проектом, на «Импульсе» было много интересных активностей: каждый день проходили лекции про продукты, технологии и лучшие практики в YADRO. Также можно было посещать клуб по изучению английского языка, тренинги по soft-skills, работе в команде, самопрезентации и другим полезным темам. Еще для стажеров была организована экскурсия на завод Ядро Фаб Дубна, меня очень впечатлило, это крупнейшее в России производство полного цикла, где можно было вживую увидеть, как производятся многослойные печатные платы, серверное оборудование, клиентские устройства и др.

Дмитрий Муравьёв
Студент 3 курс Новосибирского государственного университета, факультет информационных технологий. Инженер-стажер в отделе аппаратной валидации, тестировании и квалификации

О компании YADRO узнал от преподавателя, он и порекомендовал нам пройти летнюю стажировку. Из всех направлений меня больше всего заинтересовало тестирование систем на кристалле. Мне всегда было интересно разбираться, как работают привычные нам вещи на аппаратном уровне.

Для тестирования низкоуровневого оборудования мы использовали платформу автоматизированного запуска тестов, которая позволяет облегчить работу инженерам. Она управляет расписанием запусков нескольких тестов на различных стендах и учитывает, что каждый тип оборудования имеет свои особенности настройки перед тестированием. С подобной спецификой отлично справляется фреймворк Pytest. Фреймворк позволяет упростить автоматический запуск нескольких тестов, с помощью setup/teardown-методов делает подготовку окружения более простой и удобной. С помощью параметризации добавляется возможность протестировать различные варианты конфигурации оборудования, что очень важно при верификации сложных проектов.

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

Получил более глубокие знания архитектуры RISC-V, особенности ее микроархитектуры. Узнал много нового в работе операционных систем и программировании устройств. Получил опыт работы с новыми для меня фреймворками на более продвинутом уровне.

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

Коротко о стажировке

Импульс — это ежегодная программа стажировок от компании YADRO. В 2024 году в компании набирали стажеров по более, чем 60 направлениям: от разработки микропроцессоров до бухгалтерского дела. Студенты не только поработали с реальными задачами, но и приобщились к инженерной культуре. Для ребят организовали экскурсию в Музей криптографии и поездку на производство Ядро Фаб Дубна, проводили лекции с экспертами компании, турнир по футболу и клуб разговорного английского.

По итогам стажировки более 200 студентов стали сотрудниками компании.

Наверх
Будь первым, кто оставит комментарий