info_outline
X In most instances, this position requires in-person interviews as part of the hiring process.
Minimum qualifications: - Bachelor's degree or equivalent practical experience.
- 2 years of experience programming in C , or 1 year of experience with an advanced degree in an industry setting.
- 2 years of experience designing and developing distributed databases or storage systems.
- Experience in performance analysis, debugging, and optimization for distributed or low-level systems.
- Experience with concurrency, multithreading and synchronization.
Preferred qualifications: - Master's degree or PhD in Computer Science or a related technical field.
- Experience with database internals and diagnosing of issues such as memory leaks, data corruption, database performance and tuning.
- Experience with transactional database systems.
- Understanding of distributed computing concepts, consensus algorithms (e.g., Paxos).
About the jobSpanner Batch Team empowers customers to perform large-scale data processing against their Spanner databases efficiently, reliably, and without impacting live transactional workloads. Key initiatives include enhancing efficiency of writes by developing improved mechanisms for read-modify-write operations, creating more performant bulk data loading pathways(essential for emerging AI/ML workloads), introducing advanced mutation semantics and data life-cycle management features. These efforts collectively aim to strenthen Spanner as a comprehensive platform for both online transactional systems and offline large-scale data processing.
We are looking for Software Engineers with an interest and significant systems experience to solve critical problems related to Spanner availability and scale.
Individual pay is determined by factors including job-related skills, experience, and relevant education or training.
US: $147000 - $210000 (USD) 15% bonus target equity benefits
Responsibilities - Write and test product or system development code.
- Participate in, or lead design reviews with peers and stakeholders to decide amongst available technologies.
- Review code developed by other developers and provide feedback to ensure best practices (e.g., style guidelines, checking code in, accuracy, testability, and efficiency).
- Contribute to existing documentation or educational content and adapt content based on product/program updates and user feedback.
- Triage product or system issues and debug/track/resolve by analyzing the sources of issues.