Minimum qualifications:- Bachelor's degree or equivalent practical experience.
- 5 years of experience with software development in C .
- 5 years of experience in performance analysis, debugging, and optimization for distributed or low-level systems.
- 5 years of experience in one or more of the following: architecting or developing distributed systems or concurrency, multi-threading, 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 designing and developing distributed databases or storage systems.
- Understanding of database concepts such as high-availability and disaster recovery.
About the jobSpanner is a globally-replicated, scalable SQL-aware database that provides consistency guarantees and high availability and is a key asset of Google's product portfolio of storage services.
In this role, you will build knowledge of and contribute to many cross-cutting technologies throughout Spanner's stack, to name a few, co-processors, group management, range-map, indexing, query engines, and much more. You will need to have an interest and significant systems experience to solve critical problems related to Spanner availability and scale.
The US base salary range for this full-time position is $174,000-$252,000 bonus equity benefits. Our salary ranges are determined by role, level, and location. Within the range, individual pay is determined by work location and additional factors, including job-related skills, experience, and relevant education or training. Your recruiter can share more about the specific salary range for your preferred location during the hiring process.
Please note that the compensation details listed in US role postings reflect the base salary only, and do not include bonus, equity, or benefits. Learn more about benefits at Google .
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.