Москва, улица Годовикова, 9с17
В одной из компаний Группы Аренадата - Picodata открыта вакансия ведущего системного разработчика на языках С и Rust.
Команда Picodata основана экспертами по высоким нагрузкам с опытом разработки и внедрения систем, обслуживающих десятки тысяч запросов в секунду. Сотрудники компании — авторы собственных курсов по разработке и эксплуатации высоконагруженных приложений. Мы регулярно выступаем на конференциях и рассказываем о решаемых задачах и продукте.
Мы предоставляем полный спектр сервисов: от создания открытого и коммерческого ПО до внедрения, сопровождения, развития решений у заказчика. Наш софт помогает решать mission critical задачи и обеспечивает доступность > 99.99%. Наши заказчики — наиболее требовательные клиенты из крупнейших коммерческих и государственных организаций России и СНГ.
Наша команда разрабатывает собственный продукт – распределенную систему управления базами данных с поддержкой плагинов на языке Rust.
Технологический стек делится на несколько частей:
Ядро Tarantool, написанное на языках C и C++, которое предоставляет хранилище данных с подсистемой ввода-вывода, специализированные аллокаторы памяти, реализацию кооперативной многозадачности (stackful coroutines), механизм цикла событий (libev) и проч. Мы поддерживаем собственный форк и по мере необходимости вносим в него изменения, а также взаимодействуем с апстримом.
Все верхнеуровневые подсистемы, такие, как менеджер кластера, схемы данных, интерпретатор распределенного диалекта SQL, инфраструктурные библиотеки, плагины реализованы на языке Rust. Все компоненты собираются в единый исполняемый файл, а для работы с ядром активно используется FFI.
Тесты и вспомогательные скрипты пишем на языках python, lua, bash, make.
Мы поддерживаем релизы под дистрибутивы Linux на двух архитектурах: x86 и ARM, но для удобства разработчиков частично совместимы с MacOS.
На текущем этапе мы сфокусированы на трех ключевых свойствах продукта:
движок исполнения SQL,
надежное и удобное управление кластером на базе Raft,
гибкий API для расширения возможностей СУБД посредством плагинов.
Помимо этого, есть ряд интересных идей и продуктовых гипотез, которые нам предстоит проверить.
Чем предстоит заниматься
Реализовывать распределенные алгоритмы управления транзакциями, составом кластера, репликацией и перебалансировкой данных.
Разрабатывать ядро продукта, в том числе писать разнообразные тесты.
Не только писать код, но и описывать свои идеи в формате RFC и документации и защищать их перед другими участниками проекта.
Отлаживать проблемы и чинить баги.
Ставить эксперименты: составлять бенчмарки, измерять производительность, изучать флеймграфы и проч.
Делать ревью кода.
Необходимые навыки и опыт
Высшее или неоконченное высшее техническое образование.
Опыт работы программистом более 4-х лет.
Знание Rust (предпочтительно) или других системных языков (C, C++).
Опыт системного программирования для Linux.
Опыт разработки распределенных систем.
Инструменты: cargo, git, gdb, perf, опционально ebpf.
Москва
Не указана
Москва
Не указана