Обязанности:
Привет! Это команда разработки хранилища логов, занимаемся разработкой seq-db - базы данных, отвечающей за хранение и обработку большинства логов и трейсов в Озоне. Суммарно храним > 1Пб данных различных систем Озона, в сутки обрабатываем более 130 млрд логов. seq-db появилась как замена elasticsearch для задач телеметрии около 5 лет назад, и у нас на неё большие планы, в том числе выход в опенсорс. Мы отвечаем за важную часть инфраструктуры Озона, поэтому стабильность системы мы ценим больше новых фич, а код тщательно проверяем и тестируем перед любой выкаткой. Ищем ведущего разработчика с опытом в инфраструктурной разработке, который будет поддерживать, улучшать и развивать seq-db. Наш стэк Golang, k8s, Grafana, Prometheus, qbec Вы будете Отвечать за полный цикл разработки фичей: от идеи до выкатки в прод. Примеры таких проектов сейчас: выгрузка и чтение данных в/из s3, отложенные (или асинхронные) запросы. Писать пропоузалы и защищать их перед командой и руководством. Разрабатывать и дорабатывать различную функциональность в seq-db. Оптимизировать узкие места по производительности, искать и исправлять боттлнеки. Фиксить техдолг, участвовать в дежурствах, ревьюить код. Нам важно Знание внутрянки и умение писать на одном из ЯП: Go/C++/Java (Пишем мы в основном на Go). Опыт разработки высоконагруженных отказоустойчивых систем. (В идеале: опыт в инфраструктурной команде). Базовый опыт работы с k8s. Знание, что такое statefulset и deployment, уметь осознавать из-за чего порестартился под и смотреть на каком сервере он крутится. Умение разбираться в новой кодовой базе, дебажить, профилировать, оптимизировать код, искать и исправлять узкие места. Идеально: знать на что смотреть на профилях, уметь в нужный момент заюзать perf, strace, для того, чтобы осознать что именно идёт не так. Понимание архитектуры, принципов работы и механизмов Linux (управление процессами, файловые системы, сетевой стек). Знать, чем поток отличается от процессса, что такое файловый дескриптор и зачем нужно разделение на kernel space и user space. Знание асимптотики и базовой реализации основных структур данных. Умение применять на практике алгоритмические знания, и оценивать производительность реализованных решений. Идеально: хорошо знать устройство структур данных, используемых в базах данных (B-деревья, bloom фильтры, хеш таблицы и тд). На интервью в деревья переворачивать не будем, но про алгоритмы пообщаемся. Умение работать с многопоточным кодом, понимание того, чем мьютекс отличается от спинлока, в чем разница между параллелизмом и конкуррентностью; Знание английского на уровне, достаточном, чтобы письменно общаться, писать документацию в публичном пространстве. Идеально: опыт участия в open source разработке. Будет плюсом Опыт разработки SQL/NoSQL/NewSQL баз данных, или знание в устройства хотя бы одной современной СУБД. Если нет опыта - не страшно, но мы поймём что вам интересно с нами общаться, если почитаете про это перед собеседованием.Похожие вакансии