In this role you’ll drive the development of Rigetti’s Quantum Cloud Systems API, the sole interface by which researchers and enterprises around the world can interact with our state-of-the-art quantum computers. This is the front end of Rigetti’s “operating system for quantum computing.”
This is a highly creative role and you must be invigorated by invention, opportunity, and ownership of your product.
You must be experienced, skilled, and interested in building, maintaining, and deploying quality software in a distributed service architecture for production environments.
Day-to-day In This Role
- You’ll develop and maintain the core service used to execute programs on Rigetti quantum processors, both live and simulated. This is a service used by internal researchers and public customers alike, for whom stability and reliability is essential.
- A key performance metric for the company is the speed of execution, in which microseconds of improvement can make a difference.
- This service is written in a mix of Golang and Rust (via FFI). You will hold significant sway over the future architecture of the service.
- You’ll extend and refine the gRPC API in ways that offer deeper or more efficient access to the quantum processor.
- This service has been in production for over a year, but many opportunities remain for optimization and new product features.
- You’ll use the service’s integration with Kafka to emit key data about its operations.
- You’ll assume pager duty to ensure that this service remains operational around the clock. Operational issues today are rare, with less than one urgent response needed per month.
- You’ll work closely with several teams within Rigetti:
- Our embedded software engineering team, which develops the cutting-edge hardware driving the quantum processor. This service interacts directly with that hardware, and it’s critical that they mesh together tightly.
- Quantum engineers and applications developers, who rely on this service to do their research and offer exciting, novel ideas to refine and optimize it.
- Our infrastructure team, in order to ensure that the service remains performant and highly available.
- You’ll influence and optionally participate in compiler and language development.
- You’ll have the opportunity to drive research and development into new modes of execution, which can result in paper publications, conference presentations, or patent applications.
- Rigetti offers clients and SDKs in several languages for interaction with Quantum Cloud Services, as well as documentation to guide our users. You’ll evaluate and improve these to improve the customer experience.
About You
- You relish a sense of ownership and agency over your work, and you learn quickly.
- You have experience building mission-critical, reliable, and performant systems.
- You enjoy leading a high-level architecture discussion one moment, and then translating that discussion into reliable production code the next.
- You prize the quality of the software that you write.
- You rigorously test and document software intended for production use, follow common language conventions and well-known patterns, and rely heavily on automation for testing and deployment.
- You are experienced in profiling, benchmarking, and tracing code in both the development and deployment environments.
- You know how to design an API to avoid breaking changes, and how to migrate clients when it can’t be avoided.
- You are knowledgeable about non-trivial parts of service design, such as distributed authorization, error handling, and versioning.
- You are versed in best practices for tracing, monitoring, and logging for distributed services.
- You work independently - you’re comfortable leading the design and implementation of a software package or service from high-level requirements.
Key Requirements
- Discipline and rigor in your code, design, and communication.
- Fluency in Rust. Competence in Golang and Python.
- Deep experience building and maintaining schema-driven, widely accessible web APIs (one or more of OpenAPI, GraphQL, gRPC/Protobuf).
- Experience with event streaming systems (e.g. Kafka, Kinesis).
Nice to Have
- Experience in programming language and/or compiler development.
- Experience building and maintaining SDKs.
- Experience architecting, building, and deploying microservice architectures.
- Experience with deploying in Kubernetes and/or service mesh architectures.
- Academic background in Computer Science, Electrical Engineering, or Physics.
- Knowledge of quantum computing and applications.
#J-18808-Ljbffr