Lead C++ Developer / Эксперт по разработке С++
Описание
Мы разрабатываем высокопроизводительную кластерную файловую систему с общим диском (Shared-Disk) для инфраструктуры корпоративного уровня. Наша цель — обеспечение отказоустойчивости и максимальной пропускной способности при работе с большими данными в среде GNU/Linux. Стек — преимущественно современный C++ в пользовательском пространстве, низкоуровневая оптимизация и работа с сетевыми протоколами. Чем предстоит заниматься: • проектированием, разработкой и отладкой компонентов кластерной файловой системы (Shared-Disk Cluster) в пользовательском пространстве GNU/Linux на языке C++; • доработкой, оптимизацией и сопровождением сетевых протоколов CIFS/SMB и NFS в среде GNU/Linux; • дизайном и разработкой низкоуровневых системных компонентов для ОС GNU\Linux; • анализом нештатных ситуаций (отказы, дедлоки, состояние гонки и пр.) возникающих в программных компонентах во время их эксплуатации и поиск решения. Мы ожидаем от будущего члена команды: • коммерческий опыт разработки на языке С++ (стандарты 17/20) для rpm-based дистрибутивов GNU\Linux; • коммерческий опыт разработки на языке С для rpm-based дистрибутивов GNU\Linux; • опыт отладки, профилирования и оптимизации многопоточных приложений в пространстве пользователя GNU/Linux (gdb, valgrind, санитайзеры, perf); • знание модели OSI, понимание принципов сетевого взаимодействия; • понимание принципов организации дисковых файловых систем, сетевых файловых систем, кластерных файловых систем; • понимание принципов построения CI/CD и методик тестирования системного ПО (модульное, интеграционное, нагрузочное); • владение английским языком для свободного поиска и чтения технической документации. Будет плюсом: • опыт разработки системного ПО в среде GNU/Linux, включая понимание внутреннего устройства ядра и опыт написания/отладки модулей ядра; • знакомство с принципами и инструментами конкурентной кластерной обработки данных (Distributed Lock Manager, Paxos\Raft, gossip, ONC RPC, DCE\RPC, gRPC); • знакомство с внутренними структурами данных ПО Samba, опыт разработки модулей расширения доступа к данным и аутентификации; • способность анализировать трафик сетевых файловых систем и выявлять фактические несоответствия заданным спецификациям; • знакомство с протоколом NFS 3, NFS 4 с расширениями pNFS и сопутствующими спецификациями (ONC RPC, XDR, MOUNT, NLM, …); • знакомство с технологией FUSE, опыт написания серверов файловых систем на FUSE под управлением ОС GNU\Linux; • знакомство с протоколом LDAP (RFC2307,RFC2307bis), с AD DS в режиме LDAP, понимание принципов организации сущностей и атрибутов, синтаксис их определения, синтаксис определения и доступа к данным LDIF; • понимание принципов работы Name Switch Service под OC GNU\Linux; • опыт работы с sssd, openldap(slapd, ldapsearch), AD DS, docker, nss_wrapper, rpmbuild, strace.