Summary
Temporal Technologies is seeking a Software Engineer II to join its Open Source Server team, which builds and maintains the core Temporal server. The role focuses on designing, implementing, testing, and operating distributed systems components while improving reliability, performance, operability, and developer experience.
Responsibilities
- Design, implement, test, and ship well-scoped features and improvements for the Temporal server with support from teammates
- Work on distributed systems problems in areas such as task matching, scheduling, workflow execution, visibility, quotas, throttling, persistence, developer primitives, and workflow lifecycle features
- Make thoughtful engineering tradeoffs with guidance, balancing developer experience, performance, and operability requirements
- Partner with engineers, product managers, cloud teams, and customer-facing teams to understand requirements and deliver scalable solutions
- Improve the reliability and operability of the server by adding tests, instrumentation, dashboards, alerts, runbooks, and documentation
- Participate in design discussions and code reviews to learn best practices and contribute to a high-quality codebase
- Contribute to improving the developer experience for open source users and enterprise customers through incremental improvements and bug fixes
- Share knowledge with teammates and contribute to a collaborative engineering culture
Skills
- Experience building and operating production backend systems (distributed systems experience and concurrency experience)
- Strong computer science fundamentals, including concurrency basics, data structures, and debugging
- Experience writing production-quality code in Go, Java, or another applicable backend language, with an emphasis on correctness and maintainability
- Familiarity with core distributed systems concepts (e.g., fault tolerance, consistency tradeoffs, replication, scheduling, performance), with interest in deepening these skills
- Ability to break down ambiguous problems into smaller tasks, ask good questions, and incorporate feedback from code review
- Comfort working collaboratively across teams and communicating progress, risks, and tradeoffs clearly
- You're excited to continue building and deepening your distributed systems expertise
- You enjoy learning large, complex codebases, think critically, thrive in ambiguity, and enjoy solving challenging problems
- You take ownership of your work, follow through, and collaborate well with teammates
- You balance technical depth with practical engineering decisions and are comfortable iterating toward better solutions
- Experience with testing practices and an operational mindset (logging, metrics, tracing, on-call empathy) is a plus
- Experience with open source software or communities is a plus
- Experience with AWS, Azure, or GCP is a plus
- Exposure to technologies such as Elasticsearch, OpenSearch, ClickHouse, Cassandra, PostgreSQL, or MySQL is a plus
- Exposure to Kubernetes or related tooling (CRDs, KEDA, Argo) is a plus
Qualifications
Must Haves
- Experience building and operating production backend systems (distributed systems experience and concurrency experience)
- Strong computer science fundamentals, including concurrency basics, data structures, and debugging
- Experience writing production-quality code in Go, Java, or another applicable backend language, with an emphasis on correctness and maintainability
- Familiarity with core distributed systems concepts (e.g., fault tolerance, consistency tradeoffs, replication, scheduling, performance), with interest in deepening these skills
- Ability to break down ambiguous problems into smaller tasks, ask good questions, and incorporate feedback from code review
- Comfort working collaboratively across teams and communicating progress, risks, and tradeoffs clearly
- You're excited to continue building and deepening your distributed systems expertise
- You enjoy learning large, complex codebases, think critically, thrive in ambiguity, and enjoy solving challenging problems
- You take ownership of your work, follow through, and collaborate well with teammates
- You balance technical depth with practical engineering decisions and are comfortable iterating toward better solutions
Nice to Haves
- Experience with testing practices and an operational mindset (logging, metrics, tracing, on-call empathy) is a plus
- Experience with open source software or communities is a plus
- Experience with AWS, Azure, or GCP is a plus
- Exposure to technologies such as Elasticsearch, OpenSearch, ClickHouse, Cassandra, PostgreSQL, or MySQL is a plus
- Exposure to Kubernetes or related tooling (CRDs, KEDA, Argo) is a plus
Benefits
- Offers Equity
- Remote work arrangement