НПП «Цифровые решения» - разработчик и производитель телекоммуникационного оборудования, твердотельных накопителей информации и микросхем.
Мы уже более 20 лет успешно осуществляем полный цикл создания РЭА: от идеи до производства и дальнейшего технического сопровождения.
Сейчас мы находимся в поиске опытного программиста встраиваемых систем, с хорошим знанием устройства микроконтроллеров на низком уровне.
Проекты:
- Микросхема с нейронным процессором
- Микросхема видеообработки
- Микросхема маршрутизатора
- Микроконтроллеры общего и специализированного назначения
Требования:
- Опыт программирования на языке C от 5 лет, непосредственное участие в завершенных проектах, умение понятно о них рассказать;
- Опыт низкоуровневого программирования микроконтроллеров AVR или ARM;
- Знание архитектуры микроконтроллеров, понимание деталей работы ядра и периферии;
- Понимание принципов проектирования ПО, тестирования, CI/CD;
- Знание общепринятых практик написания структурированного, читаемого кода;
- Опыт работы с системами контроля версий;
- Понимание устройства тулчейна (makefile, параметры компиляции, скрипты линкера).
Приветствуется, но не обязательно:
- Опыт разработки под RTOS (FreeRTOS и аналоги);
- Опыт разработки под архитектуру RISC-V;
- Опыт разработки на Python;
Знание Embedded Test Driven Development;
Опыт работы с протоколами сетевого уровня (UDP, TCP/IP);
Знание принципов ООП; - Опыт работы со статическими анализаторами кода, например, PC-Lint, PVS Studio, CppCheck.
Задачи:
- Участие в полном цикле разработки микросхем - от RTL до запуска изготовленной микросхемы в изделии:
- разработка HAL и API для аппаратных блоков
- моделирование и макетирование блоков по отдельности и в составе процессорной системы
- плотное взаимодействие с разработчиками периферийных блоков
- Разработка тестового ПО для ПК на Python;
- Разработка архитектуры программного проекта (модульность, переносимость);
- Разработка примеров использования микроконтроллеров (SDK и example projects);
- Отладка разрабатываемых компанией устройств, тестирование на совместимость со сторонним оборудованием;
- Написание документации на собственный код в Doxygen, составление схем алгоритмов и т.п.
- Рефакторинг легаси-кода с переносом его на новые проекты.
Рабочий процесс:
- Постановка задач через Redmine и Gitlab;
- Разработка на языке Си под архитектуру RISC-V, проекты bare metal и FreeRTOS;
- Написание кода по установленному стандарту команды;
- Взаимодействие с разработчиками аппаратных блоков, совместное моделирование аппаратной и программной части процессорной системы;
- Системы контроля версий — git, svn;
- Непрерывная интеграция и тестирование (автосборка всех коммитов, регресс-тесты);
- Составление документации на собственный код (Doxygen, Drawio, Markdown).
Тест, прикрепленный к вакансии, не обязательно решать правильно, но вопросы из него будут на собеседовании, если при отклике вы на них не ответили.