Бифорком Тек

Разработчик data plane в сетевой ОС

Не указана
  • Москва
  • От 3 до 6 лет

Задачи:

  • Проектирование и реализация в коде функций блока аппаратной абстракции, обеспечивающего программирование состояния передающего уровня (Data Plane) Ethernet и IP в аппаратный компонент — специализированный обработчик передачи данных (network ASIC);
  • Разработка и написание тестов, подтверждающих ожидаемое поведение Data Plane;
  • Исправление ошибок (багов) и улучшение производительности системы;
  • Взаимодействие с разработчиками других блоков, например, Control Plane;
  • Следить за развитием и тенденциями отрасли с целью реализации в нашем продукте функций, отвечающих запросам рынка;
  • Наблюдение за развитием и тенденциями отрасли с целью реализации в нашем продукте функций, отвечающих запросам рынка;
  • Участие в планировании развития итогового продукта (roadmap).

Требования:

  • Умение и опыт программирования на C — именно на этом языке написаны наши компоненты ОС, программирующие сетевые процессоры и SDK, которые мы используем;
  • Умение работать с большим массивом кода: способность интерпретировать написанный чужой код и быстро вникать в логику, заложенную разработчиками;
  • Умение работать в отладчике;
  • Знание операционных систем Linux на уровне понимания архитектуры данного семейства ОС, способности заглянуть в код, например ядра Linux, когда необходимо улучшить свое понимание устройства какого-то смежного компонента. И, конечно, нужно быть уверенным пользователем этих ОС;
  • Понимание принципов построения сетевых инфраструктур и функционирования использующихся в них протоколов (Ethernet, IP, control plane протоколы BGP, OSPF), с умением работать со стандартами IETF RFC, IEEE и пр.

Будет плюсом:

  • Опыт разработки ПО, непосредственно (через SDK производителя) взаимодействующего с аппаратными компонентами — программируемыми интегральными схемами, микроконтроллерами, специализированными процессорами;
  • Понимание современного устройства процесса разработки ПО:

• Работа с кодом в системе SCM (Git, GitLab);
• Работа с системами сборки autoconf, automake, make;
• Применение подходов DevOps и CI/CD;
• Работа с задачами в трекере (Jira и пр.), проектная работа Agile Scrum.

  • Знание архитектуры сетевого блока ядра Linux;
  • Опыт разработки многопоточных приложений;
  • Опыт разработки сервисов (daemons) в среде Linux;
  • Опыт разработки патчей для Linux Kernel или других больших Open Source проектов;
  • Опыт разработки и сопровождения решений с высокими требованиями к надежности;
  • Понимание принципов работы цифровой схемотехники;
  • Знание протокола связи I2C, интерфейсов SMBus и PMBus, интерфейса ACPI.

Условия:

  • 5/2, удаленный формат работы;
  • Официальное трудоустройство (белая заработная плата, оплачиваемые отпуска, больничные);
  • После прохождения испытательного срока ДМС.