Задачи
— Разработка и доработка компонентов ядра Linux, модулей ядра и драйверов на языке C.
— Анализ и исправление ошибок в ядре (kernel panic, oops, deadlock, race condition, утечки памяти).
— Сопровождение собственной ветки ядра: сборка, конфигурирование, бэкпорт патчей из upstream.
— Code review, разработка тестов (kselftest, KUnit, LTP), взаимодействие со службой тестирования и инфраструктурой.
— Ведение технической документации.
— Самостоятельное решение задач по разработке, отладке и сопровождению ядра в рамках направлений, поставленных Senior-разработчиком; участие в code review; развитие экспертизы в подсистемах ядра (для Middle-разработчика).
— Техническое лидерство в отделе разработки: проектирование архитектуры решений на уровне ядра, оптимизация производительности подсистем ядра, менторство и ревью кода Middle-разработчиков, оценка и декомпозиция задач (для Senior-разработчика).
Требования
— Опыт работы от 3 лет в должности разработчика на C под Linux, включая разработку в пространстве ядра (для Middle-разработчика).
— Опыт работы от 5 лет в должности разработчика на C под Linux, включая разработку в пространстве ядра (для Senior-разработчика).
— Уверенное знание языка C.
— Опыт разработки модулей ядра Linux и/или драйверов устройств.
— Понимание внутреннего устройства ядра (управление памятью, планировщик, прерывания, синхронизация).
— Опыт отладки ядра (kdump/crash, GDB/kgdb, ftrace, perf).
— Сборка и конфигурирование ядра (Kconfig, Kbuild).
— Работа с Git и patch-based workflow.
— Знание сетевого стека Linux и опыт контрибуции в upstream — плюс.
Условия
— Удаленная работа.
— ЗП определяется по итогу собеседования.
— Официальное трудоустройство (белая заработная плата, оплачиваемые отпуска, больничные).
— После прохождения испытательного срока ДМС.