Работа в Picodata
Компания Picodata — российский разработчик распределённой СУБД для критической инфраструктуры. Наша команда растёт; ниже открытые позиции и условия.
О компании
Компания Picodata основана экспертами по высоким нагрузкам с опытом разработки и внедрения систем, обслуживающих десятки тысяч запросов в секунду. Сотрудники компании — авторы собственных курсов по разработке и эксплуатации высоконагруженных приложений, регулярно выступают на конференциях.
Мы предоставляем полный спектр сервисов: от создания открытого и коммерческого ПО до внедрения, сопровождения и развития решений у заказчика. Наш софт обслуживает mission critical задачи и обеспечивает доступность выше 99,99 %. Заказчики — крупнейшие коммерческие и государственные организации России и СНГ.
Команда разрабатывает собственный продукт — распределённую СУБД с поддержкой плагинов на языке Rust — и внедряет решения на основе этого продукта.
Открытые вакансии
Ведущий разработчик Rust / C в продуктовую команду Picodata
Ваша роль
Реализация распределённых алгоритмов управления транзакциями, составом кластера, репликацией и перебалансировкой данных. Также вам предстоит:
- Разрабатывать ядро продукта, в том числе писать разнообразные тесты.
- Не только писать код, но и описывать свои идеи в формате RFC и документации, защищать их перед другими участниками проекта.
- Отлаживать проблемы и чинить баги.
- Ставить эксперименты: составлять бенчмарки, измерять производительность, изучать флеймграфы и проч.
- Делать ревью кода.
Технологический стек
- Ядро Tarantool на C и C++ — хранилище данных с подсистемой ввода-вывода, специализированные аллокаторы памяти, кооперативная многозадачность (stackful coroutines), цикл событий (libev). Поддерживаем собственный форк, по мере необходимости вносим изменения и взаимодействуем с апстримом.
- Все верхнеуровневые подсистемы — менеджер кластера, схема данных, интерпретатор распределённого диалекта SQL, инфраструктурные библиотеки, плагины — реализованы на Rust. Все компоненты собираются в единый исполняемый файл; для работы с ядром активно используется FFI.
- Тесты и вспомогательные скрипты — Python, Lua, Bash, Make.
Поддерживаем релизы под дистрибутивы Linux на двух архитектурах: x86 и ARM. Для удобства разработчиков частично совместимы с macOS.
Сейчас фокус — три ключевых свойства продукта: движок исполнения SQL, надёжное и удобное управление кластером на базе Raft, гибкий API для расширения возможностей СУБД через плагины. Помимо этого есть продуктовые гипотезы, которые предстоит проверить.
Основные требования
- Высшее или неоконченное высшее техническое образование.
- Опыт работы программистом более 4 лет.
- Знание Rust (предпочтительно) или других системных языков (C, C++), а также Java и Go.
- Опыт системного программирования для Linux.
- Опыт разработки распределённых систем.
- Инструменты: cargo, git, gdb, perf, опционально eBPF.
- Знание английского языка не ниже upper intermediate.
Будет плюсом
- Знакомство с устройством СУБД (PostgreSQL, MySQL, SQLite, ClickHouse и т. п.) и/или умение их готовить (DBA/DevOps). Отдельной похвалы заслуживают коммиты в подобных проектах.
- Способность поддержать разговор о системном программировании. Например, читали Роберта Лава или сами любите ковыряться в ядре Linux.
- Открытые проекты на GitHub или других площадках — мы их с удовольствием изучим.
Условия
- 100% белая заработная плата.
- Официальное трудоустройство, предоставление документации для отсрочки от призыва и частичной мобилизации (IT-компания — производитель отечественного ПО).
- Полная занятость, удалённая работа, график 5/2.
- ДМС после прохождения испытательного срока, возможность приобретения ДМС на родственников, оплата 80% стоимости полиса ДМС детей до 18 лет работодателем. Программа действует по всей России.
- Предоставляется оборудование по стандартам компании.
- Центральный офис — г. Москва, м. Алексеевская.
Ведущий разработчик Rust в отдел решений Picodata
Ваша роль
Разработка и поддержка высоконагруженных систем на Rust с использованием СУБД Picodata для наших заказчиков: оптимизация производительности, реализация продуктовых фич, расширение телеметрии, улучшение эксплуатационных характеристик. Готовность не только разрабатывать исходный код, но и проактивно взаимодействовать с заказчиком: архитекторами, разработчиками, командой нагрузочного тестирования и сопровождения.
Стек
Основной язык — Rust. Также много работаем с Lua и Python; для понимания нюансов работы системы требуется знание C.
Инструменты: Rust, Tarantool, Git, Docker, Ansible, Kubernetes, Prometheus.
Требования
- Высшее или неоконченное высшее техническое образование.
- Опыт работы с Rust, C++, Java или Go от 3 лет.
- Интерес к языку Rust.
- Опыт работы с NoSQL СУБД.
- Знание английского языка не ниже upper intermediate.
Будет плюсом
- Опыт реализации проектов разработки cache-хранения больших данных с помощью технологий Tarantool / Hazelcast / Ignite / Infinispan / Gemfire в роли архитектора или старшего разработчика.
- Знание принципов архитектурной организации витрин Tarantool и лучших практик их использования в качестве источника для быстрого подбора данных.
Условия
- Полная занятость, удалённая работа, график 5/2.
- Официальное трудоустройство, предоставление документации для отсрочки от призыва и частичной мобилизации (IT-компания — производитель отечественного ПО).
- ДМС, возможность приобретения ДМС на родственников, оплата 80% стоимости полиса ДМС детей до 18 лет работодателем.
- Оборудование по стандартам компании.
- Уровень оплаты труда — по итогам собеседования.