Development of high-performance data path, control/management path, data protection layer, and cluster components for a data storage system
Development of efficient algorithms and data structures for a symmetric active-active cluster
Development of high-performance data transformation algorithms and data redundancy reduction algorithms
Researching and solving performance and stability issues
Development of data replication mechanisms
Configuring and refining various Linux kernel subsystems, contributing developments to the mainline kernel
Requirements
Understanding of modern computer architecture and operating systems in general
Excellent knowledge of C
Excellent understanding of how Linux works and Linux/POSIX API
Experience in analyzing the performance of individual applications and the system as a whole
Ability to test own code
Experience in writing multithreaded and/or asynchronous programs
Nice to have
Experience in developing kernel modules or system programming experience
Experience in developing high-load systems
Experience with the Linux kernel block subsystem
Benefits
Work format: remote is possible
YADROLinux Kernel Developer / Инженер-программист (TATLIN.UNIFIED)
Формат работы: можно удалённо
☑️ Чем предстоит заниматься
-разработкой высокопроизводительных data path, control/management path, уровня data protection и кластерных компонентов для системы хранения данных
-разработкой эффективных алгоритмов и структур данных для симметричного active-active кластера
-разработкой высокопроизводительных алгоритмов преобразования данных и алгоритмов уменьшения избыточности данных
-исследованием и решением проблем, связанных с производительностью и стабильностью
-разработкой механизмов репликации данных
-настройкой и доработкой различных подсистем ядра Linux, продвижением наработок в mainline ядра
☑️ Наши пожелания к кандидатам
-понимание устройства современных компьютеров и операционных систем в целом
-отличное знание С
-отличное понимание как устроен Linux и Linux/POSIX API
-опыт анализа производительности отдельных приложений и системы в целом
-умение тестировать собственный код
-опыт написания многопоточных и/или асинхронных программ
-Будет плюсом:
-наличие опыта разработки модулей ядра или опыт системного программирования
-опыт разработки высоконагруженных систем
-опыт работы с блочной подсистемой ядра