MIND Software
Младший разработчик системного ПО (Linux kernel/ C)
1 мес. назад
RussiaJuniorHybrid
cposix apilinuxpythongitcliioctllvm
Вакансия для младшего разработчика системного ПО с низкоуровневым бэкграундом для разработки модулей ядра Linux и системных утилит, преимущественно в гибридном формате работы.
О компании
- Компания: MIND Software
Обязанности
- Разработкой и сопровождением модулей ядра Linux, работающих с блочной подсистемой - от перехвата блочного ввода-вывода до отслеживания изменённых блоков и copy-on-write снапшотов дисков
- Поддержкой широкого диапазона версий ядра - от старых до самых свежих: разбором изменений во внутренних API и адаптацией кода под них
- Поиском и устранением багов в низкоуровневом C-коде, включая работу с состояниями снапшотов, механикой COW-файлов и групповыми (атомарными) операциями над несколькими устройствами
- Написанием и расширением тестов - интеграционных и юнит-тестов на Python
- Разработкой и сопровождением системных утилит и userspace-обвязки: разделяемых / статических библиотек, CLI-инструментов и IOCTL-интерфейсов между ядром и пользовательским пространством
- Чтением и рефакторингом чужого объёмного C-кода - и уверенной работой в нём без страха
Требования
- Знание C на уровне «могу написать и отладить нетривиальную программу»
- Опыт системного программирования - писал не только прикладной код, но и работал с системными вызовами: файлы и дескрипторы, процессы, сигналы, потоки, IPC, память
- Знание POSIX API и модели ОС: чем read / write / ioctl / mmap отличаются по семантике, как устроены блокирующий / неблокирующий ввод-вывод, как ведут себя дескрипторы и права
- Понимание внутреннего устройства Linux: файловые системы, блочные устройства, страничный кэш
- Комфортная работа в Linux CLI: make, git, loop-девайсы, mount, LVM
- Готовность лезть в исходники ядра и документацию, а не ждать готовых ответов
Будет плюсом
- Опыт с модулями ядра или драйверами (хотя бы учебными)
- Понимание устройства блочного уровня Linux
- Пет-проекты на C / C++ / Rust, участие в опенсорсе, CTF / low-level
Условия
- Реальные продукты в проде и наставника с ревью кода, а не задачи «в стол»
- Редкую и дорогую на рынке экспертизу в kernel / storage, таких инженеров единицы
- Понятную траекторию роста: junior → разработчик, отвечающий за свой участок
- Возможность удаленной работы (преимущественно гибридный формат работы)