ПО общего назначения для создания и управления реляционными базами данных и обеспечения многопользовательского доступа с разным уровнем конфиденциальности Разработка направлена на расширение функций Open-source решения
Обязанности
• разработка ядра и компонентов для клиент-серверной системы в области ИБ;
• участие в выборе технологий, разработки архитектуры и ее реализация;
• рефакторинг существующего кода.
Обязательные требования
• глубокое знание языка C++ (минимум C++11/C++14) и стандартной библиотеки C++;
• понимание архитектуры и принципов работы современных ОС на основе Windows/Linux: загрузчик и загрузка ОС, ядро, user/kernel-space, службы и фоновые задачи, межпроцессное взаимодействие, файловые системы и т.д.;
• опыт работы с многопоточностью и сетью (процессы/потоки, методы синхронизации, TCP/UDP, сокеты);
• опыт работы с основными системами сборки: GNU autotools, GNU make, cmake;
• опыт работы с разными компиляторами (gcc, clang, mingw64);
• опыт работы с инструментами отладки и анализа кода (отладчики, санитайзеры, профилировщики, статический и динамический анализ кода);
• опыт работы с системами управления кодом (git), понимание принципов ведения веток и релизов в репозитории;
• опыт чтения чужого кода (в том числе legacy-кода), навыки проведения code review;
• опыт написания unit-тестов, правила оформления и документирования кода;
• опыт работы с СУБД PostgreSQL: общие знания основ баз данных, основы языка SQL, понимание базовых принципов работы СУБД PostgreSQL;
• опыт системной разработки и опыт работы в командах разработки от 3 лет;
• опыт наставничества, умение сформулировать и поставить задачу своему коллеге.
Будет плюсом
• уверенная работа в ОС Windows/Linux, работа в командной строке (sh, batch, powershell), работа со службами и сервисами;
• уверенная работа со средствами виртуализации (VirtualBox, VmWare);
• основные знания о контейнерах и опыт работы с ними;
• начальные знания Python/Perl (умение читать написанный код, умение писать небольшие скрипты);
• опыт написания расширений для СУБД PostgreSQL (в том числе на языке C/C++);
• знание принципов устройства PostgreSQL: методов хранения и обработки данных, архитектуры памяти, методов хранения и построения индексов, знание принципов работы процессов и конвейера обработки запросов.