Вакансия из официального источника
Старший разработчик
VK · Москва / удалённо
Описание вакансии
Мы — одна из немногих команд в стране, которая разрабатывает ядро распределённой базы данных, а не просто эксплуатирует её. У нас собственный форк 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
- Опыт эксплуатации баз под нагрузкой: диагностика по метрикам и логам, разбор инцидентов на продакшене
Откликнуться на сайте компании
Источник: официальный сайт VK. Актуальность проверена 07.10.2026 13:50 (Екатеринбург).
