Просто возьми и найди мне уже работу
Найти вакансии бесплатно

Вакансия из первоисточника

Старший разработчик

VK

Москва, Remote

Описание вакансии

Мы — одна из немногих команд в стране, которая разрабатывает ядро распределённой базы данных, а не просто эксплуатирует её. У нас собственный форк Apache Cassandra, поверх которого реализовано то, чего нет в ванильной версии: транзакции, глобальные индексы, генератор последовательностей. С чем предстоит иметь дело: Распределённые системы на практике: репликация, кворумы, консистентность — в продакшене из кластеров на сотни узлов в нескольких дата-центрах, обслуживающем сервисы с многомиллионной аудиторией Живая миграция между мажорными версиями базы без downtime продуктов Производительность на уровне движка хранения: стратегии компакшена, тюнинг GC, работа с off-heap, профилирование под продакшен-нагрузкой Отказоустойчивость: сценарии потери целого дата-центра, расчётные модели доступности, разбор реальных инцидентов до первопричины Работа с апстримом: наш форк регулярно синхронизируется с ванильной Apache Cassandra — вы будете читать и понимать код одной из самых известных open-source баз на уровне контрибьютора Баги, которые не воспроизвести на ноутбуке: часть проблем существует только на больших данных и больших кластерах. Реальный пример из нашей практики — переполнение int32 при компакции SSTable, у которых файл метаданных сжатия перерос 2 ГБ: код работал годами, пока данные не доросли до граничного значения Задачи Разработка и поддержка собственного форка Apache Cassandra Развитие ядра форка: транзакционный слой (ACID поверх Cassandra), глобальные индексы, слияние с апстримом Apache Cassandra Миграция продуктовых сервисов на использование последней версии форка Разработка и поддержка интеграции Cassandra во внутреннюю систему managed database Работа с нагрузочными тестами Работа с метриками, алертами, написание ранбуков, совершенствование инструментов диагностики Дежурство по своим сервисам, разбор инцидентов и устранение их причин Техническое ревью изменений и менторинг в команде Работа с командами-потребителями: разбор их проблем с производительностью, схемой данных и конфигурацией Требования Практический опыт разработки на Java от пяти лет. Core, многопоточность, работа с памятью и сборщиком мусора, профилирование Понимание того, как база данных устроена внутри: хранение на диске, индексы, журнал записи, слияние файлов данных, транзакции и уровни изоляции. На примере любой СУБД Опыт чтения и доработки исходного кода инфраструктурного open-source: баз данных, брокеров сообщений, распределённых систем Опыт работы в большой чужой кодовой базе: умение разобраться в незнакомом коде и вносить изменения, не ломая смежную функциональность Понимание распределённых систем: репликация, консистентность, кворумы, поведение при отказе узлов и сетевых разделениях Готовность участвовать в дежурстве по своим сервисам и разбирать инциденты Будет плюсом Опыт работы с Apache Cassandra любой версии Опыт с другими NoSQL-хранилищами: HBase, ScyllaDB, MongoDB, Redis Опыт эксплуатации баз под нагрузкой: диагностика по метрикам и логам, разбор инцидентов на продакшене

Открыть вакансию у работодателя

Сообщить о проблемеПомощь

Сообщить о проблеме