Principal C++ developer / Ведущий инженер-программист (TATLIN.UNIFIED)
YADRO — это российская технологическая компания, объединяющая направления разработки и производства вычислительных платформ, систем обработки и хранения данных, телекоммуникационного и сетевого оборудования, микропроцессорных ядер и fabless-производство микропроцессоров, а также пользовательских мобильных устройств под брендом KVADRA.
Общая численность сотрудников YADRO составляет более 5000 человек, большая часть которых (80%) инженеры различных профилей – авторы сотен патентов и статей.
ЗАО «Инженерный Центр Ядро» — это центр разработки YADRO в Минске, который был открыт в апреле 2023г., и на сегодняшний день наша команда — это более 100 инженеров.
Приглашаем Principal Software engineer в Департамент обработки данных – часть большой команды разработки нашего флагманского продукта – TATLIN.UNIFIED.
Продукт представляет собой современное хранилище, созданное для решения задач традиционных корпоративных приложений, больших данных и аналитики, которое используют в ЦОД, публичных и частных облаках.
Команда создаёт самую сложную часть программного продукта СХД – набор высоконагруженных сервисов, реализующих сложные алгоритмы работы с данными, их кэширования, репликации, создания слепков (snapshots) и т.д.
Наибольшая часть сервисов написана на С++ в соответствии с последними стандартами языка, часть сервисов написана на языке C в ядре Linux в тесной интеграции с аппаратной частью. Набор сервисов, которые разрабатываются в департаменте, реализуют так называемый Data Path СХД.
Data Path СХД решает следующие задачи::
- кэширование данных на запись и чтение с управлением политик наполнения кэша и вытеснения данных из кэша;
- обеспечение консистентности данных между основной и резервной новой в режиме active-active для различных режимов работы системы;
- синхронная и асинхронная репликация данных на удаленные системы;
- создание слепков данных (снапшотов) и работа с ними;
- реализация собственного гибкого, конфигурируемого решения для RAID;
- автоматическая адаптация системы к профилю нагрузки для достижения максимальной производительности системы при различных сценариях и многое другое.
Чем предстоит заниматься:
- разработкой высокопроизводительных data path, control/management path, уровня data protection и кластерных компонентов для системы хранения данных;
- разработкой эффективных алгоритмов и структур данных для симметричного active-active кластера;
- разработкой высокопроизводительных алгоритмов преобразования данных и алгоритмов уменьшения избыточности данных;
- исследованием и решением проблем, связанных с производительностью и стабильностью.
- разработкой механизмов репликации данных;
- настройкой и доработкой различных подсистем ядра Linux, продвижением наработок в mainline ядра.
Мы ожидаем от будущего члена команды:
- понимание устройства современных компьютеров и операционных систем в целом;
- уверенное понимание принципов создания дизайна и архитектуры программных продуктов;
- наличие опыта разработки модулей ядра / опыт системного программирования;
- опыт построения сложных программных продуктов и разработки архитектуры;
- знание С и C++11/14/17;
- отличное понимание как устроен Linux и Linux/POSIX API;
- опыт анализа производительности отдельных приложений и системы в целом;
- умение тестировать собственный код;
- опыт написания многопоточных и/или асинхронных программ;
- уверенные знания классических алгоритмов и структур данных;
Будем рады предложить:
- Гибридный формат работы: рабочее место в светлом и комфортном офис с открытой террасой в БЦ Riviera по адресу: проспект Победителей, 106, г. Минск + удалённая работа из дома на корпоративном ноутбуке;
- Возможность выбрать удобные начало и окончание рабочего дня;
- Конкурентный уровень заработной платы (готовы по достоинству оценить ваши знания и опыт) + премирование по результатам работы;
- Возможность расти горизонтально и вертикально, а также в зависимости от результатов и интересов перемещаться между проектами и командами.
Обслуживать клиентов: работать со счетами, пластиковыми картами и денежными переводами. Продавать банковские и страховые продукты (кредитные продукты, карты, вклады).
Обслуживать клиентов: работать со счетами, пластиковыми картами и денежными переводами. Продавать банковские и страховые продукты (кредитные продукты, карты, вклады).