Разработчик в команду PostgreSQL-совместимости YDB
Описание
Наша команда строит мост между PostgreSQL и YDB — слой совместимости, который позволит существующим Postgres-приложениям работать с YDB как с обычным Postgres, но получать взамен горизонтальное масштабирование, отказоустойчивость и строгую согласованность распределённой СУБД. Если ты имеешь опыт разработки в ядре PostgreSQL, понимаешь устройство распределенных систем, играючи пишешь код на С++ — нам сильно не хватает тебя! Чем предстоит заниматься • Архитектура расширения и слоя совместимости: Продумывать как корректно поднять PostgreSQL-семантику поверх распределённого движка YDB; • Производительность: Профилирование горячих путей, оптимизация выполнения запросов, работа с планировщиком; • Парсер, диалект, планировщик: Поддержка PostgreSQL-диалекта SQL: DDL, DML, CTE, оконные функции, рекурсивные запросы; • Транзакционная семантика: Поведение, неотличимое от Postgres на уровне приложения, реализованное на распределённых транзакциях YDB; • Горизонтальное масштабирование Postgres-шлюзов: Несколько узлов слоя совместимости, согласованно работающих как один Postgres-сервер. Прозрачное масштабирование без шардирования на стороне клиента; • Совместимость с экосистемой: Корректная работа драйверов (libpq, JDBC, asyncpg, pgx) без модификаций на стороне клиента, поддержка ORM, миграционных инструментов, BI-систем; • Техническое лидерство в команде: Дизайн-ревью, менторство, формирование инженерной планки. Что мы ждём • Сильный C++ и понимание того, как устроены высоконагруженные системы; • Готовность глубоко вкатиться во внутренности PostgreSQL, YDB и СУБД в целом: расширения, внутренние структуры, планировщик; • Понимание распределённых систем; • Умение довести архитектурное решение от идеи до согласованного дизайна и работающего кода. Будет большим плюсом • Опыт разработки расширений PostgreSQL или работы с его внутренними API (hooks, FDW, custom scan, background workers); • Глубокое знание внутренностей PostgreSQL или родственных систем (Greenplum, Citus, CockroachDB, YugabyteDB).