описание
Ищем Разработчик C++ (Lead) на проект, связанный с расширением функциональности СУБД Jatoba.
Ищем разработчика на разработку СУБД PostgreSQL на уровне ядра.
Обязательные требования:
• глубокое знание языка C (минимум C89/C99) и стандартной библиотеки C;
• глубокое знание языка C++ (минимум C++11/C++14) и стандартной библиотеки C++;
• опыт коммерческой разработки на языке С/С++ - от 5 лет;
• понимание алгоритмов, архитектуры и базовых принципов работы СУБД;
• опыт работы с СУБД PostgreSQL: общие знания основ баз данных, основ языка SQL, понимание базовых принципов работы СУБД PostgreSQL;
• понимание архитектуры и принципов работы современных ОС на основе Windows/Linux: управление памятью (виртуальная/физическая/swap), управление процессами и потоками, службами и фоновыми задачами, межпроцессное взаимодействие, управление вводом/выводом (блочные устройства, файловые системы, файловый кэш);
• уверенная работа со средствами виртуализации (VirtualBox, VmWare).
• опыт работы с многопоточностью и сетью (процессы/потоки, методы синхронизации, TCP/UDP, сокеты);
• опыт работы с основными системами сборки: GNU autotools, GNU make, cmake;
• опыт работы с разными компиляторами (gcc, clang, mingw64);
• опыт работы с инструментами отладки и анализа кода (отладчики, санитайзеры, профилировщики, статический и динамический анализ кода);
• опыт работы с системами управления кодом (git), понимание принципов ведения веток и релизов в репозитории;
• опыт чтения чужого кода (в том числе legacy-кода), навыки проведения code review;
• опыт написания unit-тестов, правила оформления и документирования кода;
• уровень английского языка, достаточный для чтения и понимания технической документации, статей по тематике СУБД.
Soft skills:
• ответственность и умение работать в команде;
• умение сформулировать и поставить задачу своему коллеге;
• навык делиться своим опытом и знаниями с менее опытными коллегами (наставничество)
Будет плюсом:
• опыт написания расширений, разработка на уровне ядра СУБД PostgreSQL;
• глубокие знания устройства PostgreSQL: методов хранения и обработки данных, архитектуры памяти, методов хранения и построения индексов, знание принципов работы процессов и конвейера обработки запросов;
• навыки анализировать и оптимизировать сложные SQL запросы/планы запросов;
• базовый уровень знания одного или нескольких языков: Golang, Python, Perl, Shell (умение читать написанный код, умение писать небольшие скрипты);
• основные знания о контейнерах и опыт работы с ними;
• знание принципов построения и функционирования распределенных систем;
• опыт разработки ПО под высокие нагрузки;
• участие в конференциях и желание принимать участие в конференциях;
• опыт разработки под ОС Windows;
• опыт планирования в Agile, Scrum.