Title: Software Engineer II, Open Source Server
Company: Temporal Technologies
Location: United States (Remote) / Seattle, Washington / San Francisco, California / Remote
Compensation: $118,400 - $194,250 per year
ROLE SUMMARY
Temporal ищет инженера-программиста II для команды Open Source Server. Эта команда создает и поддерживает основной сервер Temporal. Его область охвата широка, включая Matching, Applications, Foundations, обработку задач, квоты и регулирование, наглядность, примитивы, ориентированные на разработчиков, такие как автономные действия, расписания и потоковая передача, а также улучшения пользовательского опыта рабочего процесса, такие как Continue-As-New, пауза и сброс. Мы не ожидаем, что один человек будет охватывать все эти области. Мы ищем инженера, который будет рад изучить систему, участвовать в новых и/или неоднозначных проектах по всему коду, а также помогать улучшать надежность, производительность, эксплуатационность и пользовательский опыт Temporal с течением времени. Это практическая инженерная роль, в которой вы будете сотрудничать с опытными инженерами для проектирования, создания и эксплуатации компонентов распределенной системной платформы Temporal, одновременно развивая свои навыки в области проектирования распределенных систем.
ЧТО ВЫ БУДЕТЕ ДЕЛАТЬ
- Проектировать, реализовывать, тестировать и выпускать хорошо структурированные функции и улучшения для сервера Temporal при поддержке товарищей по команде.
- Работать над проблемами распределенных систем в таких областях, как сопоставление задач, планирование, выполнение рабочего процесса, наглядность, квоты, регулирование, хранение данных, примитивы для разработчиков и функции жизненного цикла рабочего процесса.
- Принимать обдуманные инженерные компромиссы с руководством, балансируя между удобством для разработчиков, производительностью и требованиями к эксплуатационной пригодности.
- Сотрудничать с инженерами, менеджерами по продуктам, облачными командами и командами, работающими с клиентами, для понимания требований и предоставления масштабируемых решений.
- Повышать надежность и эксплуатационность сервера, добавляя тесты, инструменты, панели мониторинга, оповещения, руководства и документацию.
- Участвовать в обсуждениях дизайна и проверках кода для изучения передовых практик и внесения вклада в высококачественную кодовую базу.
- Вносить вклад в улучшение пользовательского опыта для пользователей open source и корпоративных клиентов посредством постепенных улучшений и исправлений ошибок.
- Делиться знаниями с товарищами по команде и вносить вклад в совместную инженерную культуру.
ЧТО ВЫ ДОЛЖНЫ ПРИВНЕСТИ
- Опыт создания и эксплуатации производственных серверных систем (опыт работы с распределенными системами и параллелизмом).
- Прочные основы компьютерных наук, включая основы параллелизма, структуры данных и отладку.
- Опыт написания производственного кода на Go, Java или другом применимом серверном языке с акцентом на корректность и сопровождаемость.
- Знакомство с основными концепциями распределенных систем (например, отказоустойчивость, компромиссы согласованности, репликация, планирование, производительность) с интересом к углублению этих навыков.
- Способность разбивать неоднозначные проблемы на более мелкие задачи, задавать правильные вопросы и учитывать отзывы из проверки кода.
- Комфорт при совместной работе в разных командах и четкое информирование о прогрессе, рисках и компромиссах.
- Опыт работы с практиками тестирования и операционное мышление (логирование, метрики, трассировка, эмпатия к дежурству) является плюсом.
- Опыт работы с программным обеспечением или сообществами с открытым исходным кодом является плюсом.
- Опыт работы с AWS, Azure или GCP является плюсом.
- Знакомство с такими технологиями, как Elasticsearch, OpenSearch, ClickHouse, Cassandra, PostgreSQL или MySQL, является плюсом.
- Знакомство с Kubernetes или связанными с ним инструментами (CRDs, KEDA, Argo) является плюсом.
ЧТО ДЕЛАЕТ ВАС ХОРОШИМ КАНДИДАТОМ
- Вы заинтересованы в дальнейшем построении и углублении своего опыта в области распределенных систем.
- Вам нравится изучать большие, сложные кодовые базы, критически мыслить, преуспевать в условиях неопределенности и решать сложные задачи.
- Вы берете на себя ответственность за свою работу, доводите ее до конца и хорошо сотрудничаете с товарищами по команде.
- Вы балансируете техническую глубину с практическими инженерными решениями и комфортно итерируете к лучшим решениям.
- Вам не требуется предыдущий опыт работы с Temporal — вы заинтересованы в работе над ядром распределенной системы, используемой большим сообществом open source и корпоративными клиентами.
Temporal Technologies является работодателем, предоставляющим равные возможности. Temporal Technologies не дискриминирует по признаку расы, религии, цвета кожи, пола, гендерной идентичности, сексуальной ориентации, возраста, физических или психических отклонений, не являющихся дисквалифицирующими, национального происхождения, статуса ветерана или любой другой основы, подпадающей под действие применимого законодательства. Вся занятость решается на основе квалификации, заслуг и деловой необходимости. Мы принимаем и отмечаем различия и разнообразие.
Temporal стремится предоставлять доступ, равные возможности и разумные приспособления для лиц с ограниченными возможностями при трудоустройстве, предоставлении услуг, программ и мероприятий. Если вам требуется разумное приспособление, пожалуйста, сообщите об этом своему рекрутеру, чтобы мы могли помочь.