Мы активно расширяем команду и открываем поиск 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 и опыт разработки на нём, в том числе для системных и сетевых задач.