Job description
Minimum qualifications:
- Bachelor's degree or equivalent practical experience.
- Candidates will typically have 5 years of experience with data structures/algorithms and software development in one or more programming languages.
- Typically 3 years of experience testing, maintaining, or launching software products, and 1 year of experience with software design and architecture.
Preferred qualifications:
- Experience working with enclaves, trusted execution environments, confidential computing (e.g., AMD SEV-SNP, Intel TDX).
- Experience with virtualization technologies (e.g., VMMs, hypervisors, QEMU, VSOCK, etc.).
- Experience with Google production infrastructure (e.g., POD, BOQ, Scaffolding, OnePlatform).
- Experience with Rust and open source.
- Knowledge of cryptography primitives (e.g., encryption, signing, key derivation, key exchange protocols).
- Ability to develop and review systems and code, with security oriented mindset.
About the job
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
With your technical expertise you will manage project priorities, deadlines, and deliverables. You will design, develop, test, deploy, maintain, and enhance software solutions.
Google Research addresses challenges that define the technology of today and tomorrow. From conducting fundamental research to influencing product development, our research teams have the opportunity to impact technology used by billions of people every day.
Our teams aspire to make discoveries that impact everyone, and core to our approach is sharing our research and tools to fuel progress in the field - we publish regularly in academic journals, release projects as open source, and apply research to Google products.
Responsibilities
- Design and implement server side components that are both externally verifiable and internally compatible with google infrastructure.
- Manage components of Oak that are mostly implemented in Rust.
- Work on low-level infrastructure to allow taking advantage of hardware enclaves in Google Data Centers.
- Make Oak the platform for provably private computation in Google and collaborate with other teams in Google to adopt Oak to their use cases.
- Participate in the wider security research community, (e.g., writing papers, giving presentations, attending conferences, etc.).