Software Engineer, Google.com
Software Engineer, Google.com - Atlanta
This position is based in Atlanta, GA; Kirkland/Seattle, WA; Lenoir, NC; Los Angeles, CA; Mountain View, CA; New York, NY; Pittsburgh, PA; San Francisco, CA or The Dalles, OR. The area: Engineering, Google.com Engineering Google.com Engineering makes Google's services fast and reliable for hundreds of millions of users. This mission critical team (also known as Site Reliability Engineering) combines software development, networking, and systems engineering expertise to build and run large scale, massively distributed, fault-tolerant software systems and infrastructure. We hire creative engineers and technology enthusiasts who enjoy being challenged by problems of scale and complexity, with a strong desire to make services better for users. We routinely solve software and systems issues ranging from distributed change propagation on live serving systems, to designing and deploying intelligent load balancing systems for the largest user-facing services in the world. Our teams come from diverse backgrounds, and we are actively seeking new team members to bring fresh perspective to solving problems, along with the technical and soft skills needed to keep Google's services growing and reliable. The role: Software Engineer, Google.com As a Software Engineer working on Google's critical production applications and infrastructure, your mission will be to ensure Google is always fast, available, scalable and engineered to withstand unparalleled demand. You will be in the thick of solving the often unexpected problems of systems at scale in a way most engineers never experience. Your scope is from the kernel level to the continent level. This position requires the flexibility and aptitude to zoom in to fine-grained detail, and the agility to zoom right back out and up the stack. Delve into how software performs, packets flow, and hardware and code interact, in support of managing services, steering global traffic and predicting and preventing failures.... all in a day's work. You will design and develop systems to run Google Search, Gmail, YouTube, Maps, Voice, AppEngine, and more. You'll manage, automate, and make data- based decisions and judgment calls which influence globally distributed applications. You'll own the production services which comprise *.google.com, and critical infrastructure like GFS, BigTable, MapReduce, Chubby and large- scale cloud computing clusters. You will also be driving performance and reliability from software and infrastructure at massive scale -- where dealing in petabytes and gigabits and shifting by orders of magnitude is routine. You will tackle challenging, novel situations every day and work with just about every other engineering and operations team at Google. You will be looked upon as an expert and advocate to fellow engineers on making design and reliability trade-offs in running large- scale services and engineering complex systems that fail gracefully and transparently to users. As a successful candidate for this role you will have strong analytical and troubleshooting skills, fluency in coding and systems design, solid communication skills and a desire to tackle the complex problems of scale which are uniquely Google. We are particularly interested in software engineers familiar with aspects of running web services at scale -- depth in either networking technologies and Unix system calls are strong pluses. Responsibilities: Manage availability, latency, scalability and efficiency of Google services by engineering reliability into software and systems Respond to and resolve emergent service problems; write software and build automation to prevent problem recurrence Participate in service capacity planning and demand forecasting, software performance analysis and system tuning Review and influence ongoing design, architecture, standards and methods for operating services and systems Requirements: BS/MS in Computer Science or related field/degree, and/or equivalent work experience Experience in a high-volume or critical production service environment is preferred Fluency in one or more of: C, C++, Java; and familiarity with one or more of: Python, Perl, Shell, PHP Expertise in data structures, algorithms and complexity analysis Expertise in analyzing and troubleshooting large-scale distributed systems Knowledge of IP networking, network analysis, performance and application issues using standard tools like tcpdump Ability to handle periodic oncall duty as well as out-of-band requests