С-разработчик в команду Storage
О компании
«Флант» — лидер российского рынка DevOps и Kubernetes. С 2008 года мы занимаемся созданием и обслуживанием инфраструктуры любого масштаба. С 2017 года развиваем продукты Deckhouse, которые упрощают разработку, доставку и эксплуатацию приложений. А ещё консультируем по DevOps-практикам и технологиям.
Более 260 компаний доверяют нам свои инфраструктуры и уже внедрили продукты Deckhouse. Сейчас во «Фланте» работают 500+ человек, большая часть из которых — инженеры. Мы регулярно контрибьютим в Open Source-технологии, на которых строим свои продукты, и входим в топ-50 контрибьюторов проектов CNCF за последние 10 лет. А ещё разрабатываем собственные Open Source-инструменты: у нашей утилиты werf уже 4,5 тысяч звёзд на GitHub, а под управлением Community-редакции Deckhouse Kubernetes Platform развёрнуто больше 550 кластеров.
О Deckhouse
В Deckhouse мы разрабатываем экосистему продуктов для Cloud Native-разработки и ведущую K8s-платформу в России. Наши продукты закрывают для инженеров других компаний весь спектр инфраструктурных задач: от управления контейнерными нагрузками и удобной доставки приложений до сложной виртуализации и наблюдаемости. А также автоматизируют рутину разработчиков: помогают им хранить секреты, управлять версиями кода, логами и решать множество других задач.
Мы создаём лучший набор инструментов для разработки, поддержки и эксплуатации ПО. Уже сейчас Deckhouse — это больше 200 компонентов, значительная часть которых доступна в Community-версии. У нас вы будете писать enterprise-фичи с нуля и разрабатывать сложные продукты, которые при этом должны быть понятными конечному пользователю и надёжно работать без вмешательства инженеров Deckhouse, даже в закрытом контуре без доступа в интернет. Это непросто, но очень интересно.
О команде
Команда Storage создаёт программно-определяемые системы хранения данных (SDS) для платформы Deckhouse — enterprise-дистрибутива Kubernetes, используемого в production инфраструктурах крупнейших компаний.
Мы работаем на стыке ядра Linux и облачных технологий: пишем и дорабатываем модули ядра, разрабатываем userspace-компоненты для оркестрации хранилищ, строим CSI-драйвера — и всё это в контексте Kubernetes. Наш стек — C для работы с ядром и low-level компонентами и Go для control plane, операторов и интеграции с Kubernetes.
Среди наших проектов:
- Доработка и развитие DRBD — модуля ядра Linux для репликации блочных устройств в реальном времени;
- Разработка SDS-контроллеров, управляющих жизненным циклом хранилищ в Kubernetes;
- Проектирование механизмов живой миграции данных между storage-бэкендами;
- Создание кластерных файловых систем нового поколения.
Чем предстоит заниматься:
- Разрабатывать компоненты software-defined storage на C и Go: от модулей ядра и работы с netlink до Kubernetes-операторов и CSI-драйверов.
- Читать, анализировать и дорабатывать исходный код DRBD и других модулей ядра Linux.
- Проектировать и реализовывать взаимодействие между kernel space и user space — через netlink, ioctl, sysfs и другие механизмы.
- Участвовать в разработке Storage-компонентов платформы Deckhouse, которые обеспечивают постоянное (persistent) хранение данных.
- Разбираться в исходном коде Kubernetes и других Open Source-решений, написанных как на Go, так и на других языках программирования.
- Диагностировать сложные проблемы на уровне ядра ОС, файловых систем и блочных устройств, воспроизводить их на лабораторных стендах и устранять.
- Взаимодействовать с внутренними и внешними пользователями по решению вопросов работы Storage-компонентов платформы Deckhouse.
- Участвовать в RnD-проектах команды Storage.
- Дорабатывать Open Source-компоненты платформы, написанные на С
Обязательные требования:
- Опыт разработки на С от 5 лет (ядро, драйверы, системные утилиты).
- Желание писать и развиваться на Go.
- Понимание архитектуры ядра Linux: подсистема блочных устройств, VFS, device mapper, планировщики I/O.
- Понимание механизмов взаимодействия kernel space и user space: netlink, ioctl, procfs/sysfs.
- Понимание принципов работы файловых систем Linux (ext4, XFS, и/или других).
- Опыт работы с LVM и/или ZFS.
- Знание стандартов C99/C11.
- Опыт работы с Linux на уровне администрирования и отладки (strace, perf, ftrace, crash).
- Знание английского языка, достаточное для ведения письменной коммуникации с open source сообществом.
- Готовность самостоятельно исследовать новые и малоизученные области.
Будет плюсом:
- Опыт разработки или доработки модулей ядра Linux.
- Опыт работы с DRBD — на уровне администрирования или разработки.
- Понимание принципов работы протоколов NVMe-oF, RDMA, iSCSI.
- Опыт разработки software-defined storage, объектных хранилищ, баз данных или файловых систем.
- Опыт работы с Kubernetes: написание операторов, CSI-драйверов, контроллеров.
- Знание принципов проектирования распределённых систем (консенсус, репликация, кворум).
- Опыт работы с Multipath, Fibre Channel.
- Опыт работы с Deckhouse.
Оплата и Условия
- Работа в ИТ-компании, аккредитованной Минцифры.
- Полностью «белая» заработная плата и её регулярная индексация по итогам performance reviews.
- ДМС со стоматологией, страховкой от несчастных случаев и чек-апом.
- Индивидуальные уроки на онлайн-платформе, где можно выбрать английский, немецкий, французский, итальянский или испанский язык.
- Компенсация 50% стоимости сессий на онлайн-сервисе психотерапии «Ясно».
- Бесплатные курсы Deckhouse Academy.
- Полностью удалённая работа в рамках РФ — нужен только доступ в интернет.
- Современное «железо» от компании.
- Органическое неприятие бюрократии на уровне корпоративной культуры.
- Понятные цели и перспективы.
- Результаты труда, которыми можно гордиться.
Если вакансия заинтересовала — напишите нам на hr@flant.ru или укажите любой свой контакт в форме ниже.