Описание проекта:
Клиент-серверный программный комплекс с горизонтальным и вертикальным масштабированием серверной части, большие объемы собираемых и хранимых данных, широкий спектр протоколов и объектов защиты.
Обязанности:
- Разработка в проекте СУБД (PostgreSQL).
Требования: - Знание языка C (минимум C89/C99) и стандартной библиотеки C;
- Знание языка C++ (минимум C++11/C++14) и стандартной библиотеки C++;
- Опыт коммерческой разработки на языке С/С++ - от 2 лет (middle), от 4х лет (Senior);
- Понимание алгоритмов, архитектуры и базовых принципов работы СУБД;
- Опыт работы с СУБД PostgreSQL: общие знания основ баз данных, основы языка SQL,
понимание базовых принципов работы СУБД PostgreSQL; - Понимание архитектуры и принципов работы современных ОС на основе Windows/Linux:
загрузчик и загрузка ОС, ядро, user/kernel-space, службы и фоновые задачи, межпроцессное
взаимодействие, файловые системы и т.д.; - Опыт работы с многопоточностью и сетью (процессы/потоки, методы синхронизации,
TCP/UDP, сокеты); - Опыт работы с основными системами сборки: GNU autotools, GNU make, cmake;
- опыт работы с разными компиляторами (gcc, clang, mingw64); - Опыт работы с инструментами отладки и анализа кода (отладчики, санитайзеры,
профилировщики, статический и динамический анализ кода); - Опыт работы с системами управления кодом (git), понимание принципов ведения веток и
релизов в репозитории; - Опыт чтения чужого кода (в том числе legacy-кода), навыки проведения code review;
- Опыт написания unit-тестов, правила оформления и документирования кода;
- Понимание технической документации и статей на английском языке;
- Знание английского на уровне, достаточном для чтения технической документации.
Будет плюсом:
- Опыт написания расширений, разработка на уровне ядра СУБД PostgreSQL;
- Знание принципов устройства PostgreSQL: методов хранения и обработки данных,
архитектуры памяти, методов хранения и построения индексов, знание принципов работы
процессов и конвейера обработки запросов; - Способность анализировать и оптимизировать сложные SQL запросы/планы запросов;
- Готовность выполнять функцию технического эксперта и наставника;
- Обладание начальными знаниями языков Golang, Python, Perl, Shell (умение читать
написанный код, умение писать небольшие скрипты); - Знание принципов построения распределенных систем;
- Участие в конференциях и желание принимать участие в конференциях;
- Уверенная работа со средствами виртуализации (VirtualBox, VmWare);
- Основные знания о контейнерах и опыт работы с ними;
- Уверенная работа в ОС Windows/Linux, работа в командной строке, работа со службами и сервисами.- Для MIDDLE.
Условия:
-
Удаленный формат работы;
-
Работу в команде увлеченных и профессиональных людей;
-
Решение сложных и интересных задач;
-
График работы: 5/2 (09-18:00 или 10:00-19:00);
-
Полностью белую ЗП (отталкиваемся от ваших ожиданий);
-
Работу в аккредитованной ИТ-компании.