Google's software engineers develop the next-generation technologies for which we've become world-renowned. In addition to revolutionizing search technology, we use our world-class programming skills to innovate in a number of other areas as well. Our projects include working on advanced information-retrieval algorithms, massive scalability and storage solutions, and large-scale applications that enrich the user experience. We also work extensively on networking systems, advertising systems and complex transaction systems in consumer applications.
Software Engineers have a passion for solving complex and interesting problems. Google is much more than search, and our mission has much greater scope. To handle information at the scale of the web requires ideas from just about every area of computer science, including information retrieval, artificial intelligence, natural language processing, distributed computing, large-scale system design, networking, security, data compression, user interface design, etc. Engineers work on many projects that carry varying responsibilities. Below are some examples of the diverse projects with which you might be involved.
• Write server-side code for web-based applications, create robust high-volume production applications, and develop prototypes quickly. You should also have a strong understanding of, and practical experience with, Java web application development.
• Build our platforms, systems and networking infrastructure using your strong background in distributed systems, OS/kernel, network system design, and large scale storage systems.
• Build internal systems used by thousands of Googlers around the world with your domain expertise in HR, Staffing, Legal, and all other corporate functions.
• Specialist domains: UI development with AJAX and similar technologies, client application development for Windows/Mac (Chrome, Toolbar, etc.), embedded systems and mobile apps (Android), developer tools (IDEs, large-scale build systems, compilers), internationalization.
• BS, MS, or PhD in Computer Science or related technical discipline (or equivalent).
• A solid foundation in computer science, with strong competencies in data structures, algorithms, and software design.
• Extensive programming experience in C/C++ and/or Java (strong OO skills preferred).
• Several years of large systems software design and development experience, with extensive knowledge of Unix/Linux.
Does this position sound like the perfect fit for you?