21 марта 2025
Мы ищем разработчика Rust/C в продуктовую команду Picodata (входит в ГК Arenadata).
Компания Picodata основана экспертами по высоким нагрузкам с опытом разработки и внедрения систем, обслуживающих десятки тысяч запросов в секунду. Сотрудники компании авторы собственных курсов по разработке и эксплуатации высоконагруженных приложений. Мы регулярно выступаем на конференциях и рассказываем о решаемых задачах и продукте.
Наша команда разрабатывает собственный продукт распределенную систему управления базами данных с поддержкой плагинов на языке Rust .
Технологический стек делится на несколько частей:
Ядро Tarantool , написанное на языках C и C++, которое предоставляет хранилище данных с подсистемой ввода-вывода, специализированные аллокаторы памяти, реализацию кооперативной многозадачности (stackful coroutines), механизм цикла событий (libev) и проч. Мы поддерживаем собственный форк и по мере необходимости вносим в него изменения, а также взаимодействуем с апстримом.
Все верхнеуровневые подсистемы , такие, как менеджер кластера, схемы данных, интерпретатор распределенного диалекта SQL, инфраструктурные библиотеки, плагины реализованы на языке Rust. Все компоненты собираются в единый исполняемый файл, а для работы с ядром активно используется FFI.
Тесты и вспомогательные скрипты пишем на языках python, lua, bash, make.
На текущем этапе мы сфокусированы на трех ключевых свойствах продукта: движок исполнения SQL, надежное и удобное управление кластером на базе Raft, гибкий API для расширения возможностей СУБД посредством плагинов. Помимо этого, есть ряд интересных идей и продуктовых гипотез, которые нам предстоит проверить.
Мы ищем тех, кто не боится сложных и интересных задач и готов разделить наш энтузиазм. Если вышеперечисленное вызвало у вас интерес, мы наверняка сможем найти общий язык.
Что нужно делать:
реализовывать распределенные алгоритмы управления транзакциями, составом кластера, репликацией и перебалансировкой данных.
разрабатывать ядро продукта, в том числе писать разнообразные тесты.
не только писать код, но и описывать свои идеи в формате RFC и документации и защищать их перед другими участниками проекта.
отлаживать проблемы и чинить баги.
ставить эксперименты: составлять бенчмарки, измерять производительность, изучать флеймграфы и проч.
делать ревью кода.
имеете высшее или неоконченное высшее техническое образование.
работаете программистом более 4- х лет.
знаете Rust (предпочтительно) или другие системные языки (C, C++).
имеете опыт системного программирования для Linux.
разрабатывали распределенные системы.
владеете инструментами: cargo, git, gdb, perf, опционально ebpf.
имеете уровень владения английским языком не ниже upper intermediate.
Будет здоров, если Вы:
знакомы с устройством баз данных (PostgreSQL, MySQL, sqlite, ClickHouse итд) и/или умеете их готовить (DBA/DevOps). Отдельной похвалы заслуживают коммиты в подобных проектах.
можете поддержать разговор на тему системного программирования. Например, читали Роберта Лава или сами любите поковыряться в ядре Linux.
имеете открытые проекты на github или других площадках (мы их с удовольствием изучим).
100% белая заработная плата.
официальное трудоустройство, предоставление документации для отсрочки от призыва и частичной мобилизации (IT компания-производитель отечественного ПО).
полная занятость, удаленная работа.
график работы 5/2.
ДМС после прохождения Испытательного срока, возможность приобретения ДМС на родственников, оплата 80% стоимости полиса ДМС детей до 18 лет Работодателем. Программа действует по всей России.
предоставляется оборудование по стандартам компании.
центральный офис г. Москва (м. Алексеевская).