Lock Applications for this job are now closed
    Closing soon

    Site Reliability Engineering (SRE) combines software and systems engineering to build and run large-scale, massively distributed, fault-tolerant systems. SRE ensures that Google's services—both our internally critical and our externally-visible systems—have reliability, uptime appropriate to users' needs and a fast rate of improvement. Additionally SRE’s will keep an ever-watchful eye on our systems capacity and performance. Much of our software development focuses on optimizing existing systems, building infrastructure and eliminating work through automation.

    On the SRE team, you’ll have the opportunity to manage the complex challenges of scale which are unique to Google, while using your expertise in coding, algorithms, complexity analysis and large-scale system design.

    SRE's culture of diversity, intellectual curiosity, problem solving and openness is key to its success. Our organization brings together people with a wide variety of backgrounds, experiences and perspectives. We encourage them to collaborate, think big and take risks in a blame-free environment. We promote self-direction to work on meaningful projects, while we also strive to create an environment that provides the support and mentorship needed to learn and grow.

    Behind everything our users see online is the architecture built by the Technical Infrastructure team to keep it running. From developing and maintaining our data centers to building the next generation of Google platforms, we make Google's product portfolio possible. We're proud to be our engineers' engineers and love voiding warranties by taking things apart so we can rebuild them. We keep our networks up and running, ensuring our users have the best and fastest experience possible.

    Responsibilities

    • Design, write, and deliver software to improve the availability, scalability, latency, and efficiency of Google's services.
    • Solve problems relating to mission-critical services and build automation to prevent problem recurrence with the goal of automating response to all non-exceptional service conditions.
    • Influence and create new designs, architectures, standards, and methods for large-scale distributed systems.
    • Engage in service capacity planning and demand forecasting, software performance analysis, and system tuning.
    • Conduct periodic on-call duties using a follow-the-sun model.

    Qualifications

    Minimum qualifications

    • Bachelor's degree in Computer Science or related technical field or equivalent practical experience.
    • Experience with algorithms, data structures, complexity analysis and software design.
    • Experience in one or more of: C, C++, Java, Python, Go.

    Preferred qualifications

    • Expertise in designing, analyzing and troubleshooting large-scale distributed systems.
    • Familiarity with running web services at scale; understanding of Unix systems internals and networking.
    • Understanding of Unix/Linux systems from kernel to shell and beyond, taking in system libraries, file systems, and client-server protocols along the way.
    • Networking knowledge and understanding of network theory, such as different protocols (TCP/IP, UDP, ICMP, etc), MAC addresses, IP packets, DNS, OSI layers, and load balancing).
    • Systematic problem-solving approach, coupled with a sense of ownership and drive.