Вакансия из первоисточника
Senior С Developer / Старший инженер-программист С
YADRO
Санкт-Петербург
Описание вакансии
Мы активно расширяем команду и открываем поиск Senior С Developer. Чем предстоит заниматься: проектированием и разработкой низкоуровневых системных компонентов user space для ОС GNU/Linux; доработкой, оптимизацией и сопровождением реализаций сетевых протоколов SMB/CIFS и NFS в GNU/Linux; анализом нештатных ситуаций (сбои, взаимные блокировки (deadlock), гонки (race condition) и т.п.), возникающих в программных компонентах при эксплуатации, и поиском решений; доработкой и отладкой кластерной файловой системы в пространстве пользователя; анализом сетевого трафика сетевых файловых систем и выявлением несоответствий спецификациям. Мы ожидаем от будущего члена команды: коммерческий опыт разработки на языке C в среде RPM-based дистрибутивов GNU/Linux; опыт отладки, профилирования и оптимизации многопоточных user-space приложений в GNU/Linux (GDB, Valgrind, санитайзеры, perf); понимание модели OSI, стека TCP/IP и принципов сетевого взаимодействия; понимание принципов построения CI/CD и методик тестирования системного ПО (модульное, интеграционное, нагрузочное); английский язык, достаточный для чтения технической документации и поиска информации; базовое понимание сетевых файловых протоколов или готовность быстро погрузиться в предметную область. Будет плюсом: знакомство с протоколами NFSv3, NFSv4.x и сопутствующими спецификациями (ONC RPC, XDR, MOUNT, NLM и др.); знакомство с внутренними структурами данных Samba, опыт разработки VFS-модулей и модулей аутентификации; коммерческий опыт разработки на C++ (стандарты 17/20) в среде RPM-based дистрибутивов GNU/Linux; представление о внутреннем устройстве ядра Linux, опыт разработки и отладки модулей ядра на C; понимание принципов организации дисковых файловых систем, сетевых файловых систем, кластерных файловых систем; понимание распределённой координации и консенсуса: DLM, Paxos/Raft, gossip; опыт с RPC-технологиями (ONC RPC, DCE/RPC, gRPC); опыт работы с Docker, nss_wrapper, rpmbuild, strace, SSSD, OpenLDAP (slapd, ldapsearch), AD DS; знание Go и опыт разработки на нём, в том числе для системных и сетевых задач.