Temporal Technologies
Staff Software Engineer, Replication Foundations
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Инженер в команду Replication Foundations, отвечающую за ядро репликации Temporal OSS — распределённую основу для High Availability namespaces, кросс-кластерного и кросс-регионального failover и миграций между кластерами. Роль предполагает техническое лидерство, проектирование протоколов репликации и развитие масштабируемости и надёжности систем.
Задачи
- Определять техническое направление и развивать архитектуру стека репликации Temporal OSS — от постановки задачи до раскатки и операционной поддержки
- Руководить проектированием и реализацией протоколов репликации для High Availability namespaces, кросс-кластерной и кросс-региональной репликации, миграций между кластерами Temporal (cloud-to-self-hosted и cloud-to-cloud)
- Вести инициативы по масштабируемости и надёжности: multi-cell namespaces, распределение namespace по нескольким кластерам, улучшение балансировки нагрузки и обработка hot spots
- Определять и доносить системные гарантии: модели консистентности, порядок операций, идемпотентность, восстановление после сбоев, производительность и операционное поведение
- Выявлять архитектурные риски и возможности, формировать технический roadmap для репликации
- Работать совместно с Cloud Enablement, CGS, Product и другими инженерными командами
- Проводить design review, повышать качество реализации и тестирования, менторить инженеров
- Участвовать в отладке сложных продакшн-инцидентов и последующих улучшениях
Требования
- Опыт проектирования и поставки сложных продакшн распределённых систем, где критичны корректность, доступность и производительность
- Глубокое понимание основ распределённых систем: репликация, партиционирование, консистентность, отказоустойчивость, долговечность, конкурентность, восстановление после сбоев
- Опыт определения системной архитектуры, поведения протоколов, инвариантов и trade-off'ов в условиях неопределённости
- Опыт отладки сложных продакшн-проблем: баги конкурентности, неконсистентность данных, частичные отказы, узкие места производительности
- Уверенное написание продакшн-кода на Go; опыт с Java, C++ или аналогичными системными языками приветствуется
- Сильные навыки письменной и устной коммуникации, умение объяснять сложные решения и trade-off'ы технической и кросс-функциональной аудитории
- Способность влиять на техническое направление между командами, выстраивать согласие без прямой власти и менторить инженеров
- Вдумчивый и любознательный подход к пониманию поведения систем под нагрузкой, при отказах и изменении условий работы
Условия
- Equal Opportunity Employer: отсутствие дискриминации по расе, религии, цвету кожи, полу, гендерной идентичности, сексуальной ориентации, возрасту, инвалидности, национальному происхождению, ветеранскому статусу и иным признакам
- Готовность обеспечить доступ, равные возможности и разумные accommodations для людей с инвалидностью
Навыки
- Go
- Java
- C++
- distributed systems
- replication
- consistency
- fault tolerance
- concurrency
- multi-cluster
- multi-region
- active-active
- active-passive
- database internals
- log-based replication
- event-sourced systems