Backend-разработчик, распределённые системы
Dune — поставщик блокчейн-данных и аналитики; команда около 50 человек, распределена по Европе и восточному побережью США. Компания строит решения market data для институциональных клиентов, которым нужны своевременные, точные и надёжные финансовые данные. Команда превращает onchain-активность в realtime-фиды и связанные справочные данные, а также ведёт сбор исторических данных.
Роль — hands-on Staff Engineer в новой платформе market data: нужно превращать неоднозначные требования в дизайны и готовую к поставке работу, самостоятельно реализовывать сложные части и помогать другим инженерам вести значимые части платформы. AI-assisted development — часть рабочего процесса наряду с инженерным суждением и ответственностью за результат.
Задачи
- Проектировать и строить распределённые системы для приёма, нормализации, обработки, хранения и доставки realtime market data из блокчейна и других релевантных источников.
- Строить и эксплуатировать streaming-решения, обрабатывающие порядок событий, временные метки, дубли, replay, пропуски и восстановление, включая реорганизации блокчейна и finality там, где это влияет на данные клиентов.
- Строить надёжные клиентские фиды и API с понятными контрактами доставки, эволюцией схем, контролем доступа и предсказуемым поведением под нагрузкой или при отставании потребителей.
- Совместно с другими командами Dune работать над моделями справочных данных и сбором исторических данных.
- Определять и улучшать цели по уровню сервиса и метрики качества данных.
- Инструментировать latency, свежесть, полноту и корректность, превращать инциденты в устойчивые улучшения восстановления и эксплуатации.
- Отлаживать самостоятельно и доводить root cause analysis до исправления, которое держится.
- Отвечать за сервисы на этапах деплоя и продакшн-поддержки, включая участие в дежурствах on-call.
- Использовать AI на протяжении разработки: исследовать дизайн, реализовывать изменения, писать тесты, разбирать сбои, улучшать документацию; выстраивать повторяемые процессы и делиться рабочими практиками с командой.
- Вести технические решения на уровне нескольких команд, писать понятные дизайны, менторить инженеров в реализации и ревью.
Требования
- Опыт создания и эксплуатации распределённых backend- или data-сервисов с высокими требованиями к надёжности и производительности; понимание их отказов и умение отлаживать проблемы на стыке сервисов и данных.
- Опыт realtime streaming-систем: конкурентность, управление состоянием, backpressure, восстановление. Забота о корректности данных — от временных меток и числовой точности до изменений схем и исправлений.
- Сильные основы computer science и навыки backend-инженерии; опыт на Rust, Go или сопоставимых языках также ценен.
- Умение превращать неоднозначные требования в прагматичные дизайны и продакшн-сервисы, помогать другим инженерам делать части решения.
- Ясная письменная коммуникация и эффективная работа в распределённой команде.
Будет плюсом
- Опыт работы с финансовыми или рыночными данными в финансовой организации.
- Опыт с onchain-данными: индексация блокчейна, например EVM или Solana.
- Опыт со справочными данными: instrument и entity masters, маппинг идентификаторов, effective-dated записи, данные по токенизированным активам и фондам.
- Опыт работы в компании, где данные являются продуктом.