Привет! Это команда разработки хранилища логов seq-db.
Мы занимаемся созданием и развитием seq-db — базы данных, которая отвечает за хранение и обработку большинства логов и трейсов в Озоне. Суммарно мы храним более 1 Пб данных различных систем, а в сутки обрабатываем свыше 130 млрд логов. seq-db появилась около 5 лет назад как замена Elasticsearch для задач телеметрии. Проект уже вышел в open source (подробнее на https://ozon.tech/logging-stack), и у нас большие планы по его дальнейшему развитию. Мы отвечаем за критически важную часть инфраструктуры Озона, поэтому стабильность системы ценим выше новых фич, код тщательно проверяем и тестируем перед любой выкаткой.
В команде несколько опытных инженеров, мы плотно взаимодействуем с SRE, платформенными командами и продуктовой разработкой.
Ищем старшего разработчика с опытом в инфраструктурной разработке, который будет поддерживать, улучшать и развивать seq-db.
Наш стэк: Go, Kubernetes, Grafana, Prometheus, qbec.
Вы будете
-
Отвечать за полный цикл разработки фичей: от идеи до выкатки в прод.
-
Писать пропоузалы и защищать их перед командой и руководством.
-
Разрабатывать и дорабатывать функциональность seq-db (например, добавлять новые функции агрегации, расширять язык запросов и др.).
-
Оптимизировать узкие места по производительности, искать и исправлять боттлнеки.
-
Фиксить технический долг, участвовать в дежурствах и ревью кода.
Примеры задач
-
Выгрузка и чтение данных в/из S3.
-
Реализация отложенных (асинхронных) запросов.
Нам важно
-
Знание внутреннего устройства языков программирования и умение писать на Go — это наш основной язык, и мы пишем на нём весь код. При этом мы с интересом рассмотрим кандидатов с сильным опытом разработки на C++ или Java, если вы готовы быстро переключиться на Go.
-
Опыт разработки высоконагруженных отказоустойчивых систем (желателен опыт работы в инфраструктурной команде).
-
Базовый опыт работы с Kubernetes: понимание StatefulSet и Deployment, умение определить причину перезапуска пода и посмотреть, на каком узле он работает.
-
Умение разбираться в новой кодовой базе, дебажить, профилировать и оптимизировать код, находить и исправлять узкие места.
-
Понимание архитектуры, принципов работы и механизмов Linux (управление процессами, файловые системы, сетевой стек). Знание разницы между процессом и потоком, понятия файлового дескриптора, разделения на kernel space и user space.
-
Знание асимптотики и базовой реализации основных структур данных, умение применять алгоритмические знания на практике и оценивать производительность реализованных решений.
-
Умение работать с многопоточным кодом, понимание разницы между мьютексом и спинлоком, параллелизмом и конкуррентностью.
-
Английский язык на уровне, достаточном для письменного общения и написания документации в публичном пространстве.
Будет плюсом
-
Опыт разработки SQL/NoSQL/NewSQL баз данных или знание устройства хотя бы одной современной СУБД. Если опыта нет — не страшно, но мы поймём, что вам интересно с нами общаться, если вы почитаете про это перед собеседованием.
-
Глубокое знание структур данных, используемых в базах данных (LSM-деревья, bloom-фильтры, хеш-таблицы и т.д.).
-
Опыт использования perf, strace и других низкоуровневых инструментов профилирования и отладки.
-
Опыт участия в open source разработке.
Похожие вакансии
Со знанием разговорного английского языка (English-speaking team). КТО НЕ ПОДОЙДЁТ: Кандидаты с преобладающим или последним опытом в роли технических...
5+ лет опыта в fullstack-разработке (TypeScript, Node.js, React — обязательно). Опыт на позиции Tech Lead или CTO в компании...
Опыт работы от 10 лет в сфере услуг в роли бухгалтера. Знание 1С, ЭДО, Excel. Знание текущего законодательства в...
Имеете опыт работы аналитике от 5 лет, включая построение моделей и работу с BI-инструментами и от 3 лет в...
Подтвержденный опыт работы с проектами, которые стартовали с нулевым трафиком (обязательно показать эти кейсы). Опыт с проектами в игровой индустрии...
