Experienced Staff Software Engineer – Full Stack Development and Optimization for High-Performance Computing and Machine Learning on Google Cloud Platform
Introduction to Google and Our Mission
At Google, we strive to organize the world's information and make it universally accessible and useful. Our engineers are the backbone of our organization, developing cutting-edge technologies that transform how billions of users interact, explore, and connect with information and each other. We're committed to pushing the boundaries of innovation and are seeking talented engineers who share our passion for technology and our mission to make a positive impact on society.
About the Role
We're looking for an experienced Staff Software Engineer to join our team, focusing on full stack development and optimization for High-Performance Computing (HPC) and Machine Learning (ML) on Google Cloud Platform (GCP). As a Staff Software Engineer, you will play a critical role in designing, developing, testing, deploying, maintaining, and improving software solutions that meet the needs of our users. You will work on a specific project critical to Google's requirements, with valuable opportunities to switch teams and projects as you and our fast-moving business grow and evolve.
Key Responsibilities
- Perform full stack optimization for HPC and ML performance on GCP's infrastructure, including kernel optimization, userspace communication libraries (e.g., MPI library, libfabric, NCCL), and customer HPC and ML applications
- Develop HPC and ML solutions on Google Cloud Platform, leveraging your expertise in software development, testing, and deployment
- Provide technical leadership and guidance to a team of engineers, setting technical direction and boundaries for projects and ensuring the delivery of high-quality software solutions
- Collaborate with cross-functional teams, including product management, design, and research, to develop and implement software solutions that meet user needs and align with Google's overall strategy
- Design, develop, and maintain large-scale systems, including distributed systems, networking, and data storage, ensuring scalability, reliability, and performance
Qualifications and Skills
To be successful in this role, you will need to possess a strong foundation in computer science, software engineering, and related technical fields. The following qualifications and skills are essential:
- Bachelor's degree in Computer Science, Software Engineering, or a related technical field (or equivalent practical experience)
- 5+ years of experience in software development, with a focus on HPC, ML, and cloud computing
- Experience with C++, device drivers, Linux kernel, and Remote Direct Memory Access (RDMA)
- Experience with Linux device drivers, networking stack, and operating system tuning and packaging
- Experience with HPC and ML communications, including MPI, collective communication libraries, libfabric, and attachment programming
- Strong understanding of computer systems, networking, and data storage, with experience in designing and developing large-scale systems
- Excellent programming skills in languages such as C++, Java, Python, and Go
- Strong problem-solving skills, with the ability to analyze complex problems and develop creative solutions
- Excellent communication and collaboration skills, with experience working with cross-functional teams and stakeholders
Preferred Qualifications
The following qualifications are preferred, but not required:
- Master's degree or Ph.D. in Computer Science, Software Engineering, or a related technical field
- Experience with cloud computing platforms, including GCP, AWS, or Azure
- Experience with containerization, including Docker and Kubernetes
- Experience with agile development methodologies, including Scrum and Kanban
- Experience with testing and validation frameworks, including JUnit and PyUnit
Career Growth and Learning Opportunities
At Google, we're committed to helping our engineers grow and develop their careers. As a Staff Software Engineer, you will have access to a wide range of learning opportunities, including:
- Technical training and development programs, including workshops, conferences, and online courses
- Mentorship and coaching from experienced engineers and leaders
- Opportunities to switch teams and projects, allowing you to explore different areas of interest and develop new skills
- A collaborative and dynamic work environment, with a strong focus on innovation and experimentation
Work Environment and Company Culture
At Google, we're proud of our unique and dynamic company culture, which emphasizes collaboration, innovation, and creativity. As a Staff Software Engineer, you will be part of a talented and diverse team of engineers, working together to develop cutting-edge technologies and solutions. Our work environment is designed to foster collaboration, creativity, and productivity, with amenities such as:
- State-of-the-art offices and facilities, including gyms, cafes, and game rooms
- Flexible work arrangements, including remote work options and flexible hours
- A strong focus on work-life balance, with generous paid time off and parental leave policies
- A diverse and inclusive workplace, with a strong commitment to diversity, equity, and inclusion
Compensation and Benefits
We offer a competitive compensation package, including a salary range of $30 per hour, as well as a range of benefits, including:
- Comprehensive health insurance, including medical, dental, and vision coverage
- 401(k) matching and retirement savings plans
- Generous paid time off and parental leave policies
- Flexible work arrangements, including remote work options and flexible hours
- Access to a wide range of learning and development opportunities, including technical training and development programs
Conclusion
If you're a motivated and talented engineer looking for a challenging and rewarding role, we encourage you to apply for this exciting opportunity. As a Staff Software Engineer at Google, you will have the chance to work on cutting-edge technologies, collaborate with a talented team of engineers, and contribute to the development of innovative solutions that transform how billions of users interact, explore, and connect with information and each other. Don't miss out on this opportunity to join our team and help shape the future of technology.
Apply for this job