Anza
Software Engineer, Storage
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Инженер в команду AccountsDB, владеющую кастомным движком хранения в ядре валидатора Solana. Работа над производительностью, надёжностью и ресурсоёмкостью хранения состояния аккаунтов сети.
Задачи
- Разрабатывать и оптимизировать ядро движка хранения AccountsDB: раскладку файлов аккаунтов, индекс, слои кэширования чтения и записи
- Снижать потребление памяти и диска по мере роста состояния аккаунтов
- Улучшать фоновые процессы flushing, cleaning, shrinking и purging для снижения write amplification
- Оптимизировать генерацию и загрузку снапшотов и построение индекса для ускорения старта валидатора
- Обеспечивать корректность состояния аккаунтов при форках, rooting и восстановлении после сбоев
- Писать и выполнять тесты: стресс-тесты, fault injection, бенчмарки производительности
- Взаимодействовать с командами runtime, block production и core protocol, а также с другими клиентскими командами Solana
- Вести документацию по дизайну и поведению AccountsDB и проводить код-ревью
Требования
- 3+ года проектирования хранилищ данных, файловых систем, баз данных или высоконагруженных систем хранения
- Владение Rust, C или C++
- Понимание низкоуровневой механики хранения: memory-mapped files, page caching, структуры индексов, on-disk форматы, garbage collection
- Знание I/O подсистем: NVMe, buffered vs direct I/O, io_uring
- Понимание кастомных аллокаторов памяти и планирования ядра Linux, управления страницами и обработки I/O
- Опыт построения конкурентных систем: блокировки, lock-free структуры, модели памяти
- Опыт профилирования и оптимизации низкоуровневого кода
- Навыки отладки сложных архитектур и поиска узких мест производительности
- Сильные коммуникативные навыки и командный подход
Условия
- Динамичная и быстрая среда, в центре которой инновации и решение задач
- Прямое влияние на безопасность и масштабируемость блокчейн-технологий
Навыки
- Rust
- C
- C++
- Linux
- io_uring
- NVMe
- RocksDB
- LevelDB
- WiredTiger
- LSM trees
- B-trees