Software Engineer, PhD, Early Career, Campus, Embedded Systems and Firmware, 2025 start - Google
Mountain View, CA
About the Job
This application is intended for applicants that are eligible to work full-time work in the United States. Please be prepared to answer the following:
Are you legally authorized to work in the United States?
Do you now, or will you in the future, require sponsorship for employment authorization (e.g., H-1B visa, etc.) to work legally in the United States?
You can also consider applying for our international opportunities. Please check the Student Careers page for current openings in the location where you are eligible for full-time work authorization.
Note: By applying to this position you will have an opportunity to share your preferred working location from the following: Mountain View, CA, USA; Atlanta, GA, USA; Austin, TX, USA; Bellevue, WA, USA; Cambridge, MA, USA; Irvine, CA, USA; Kirkland, WA, USA; Los Angeles, CA, USA; New York, NY, USA; Pittsburgh, PA, USA; Raleigh, NC, USA; Durham, NC, USA; Reston, VA, USA; San Bruno, CA, USA; Seattle, WA, USA; San Francisco, CA, USA; San Jose, CA, USA; Sunnyvale, CA, USA.Minimum qualifications:
- PhD degree in Computer Science, or a related technical field.
- Experience in embedded systems/firmware design.
- Experience coding in C or C++.
Preferred qualifications:
- Knowledge of Unix/Linux environments, and kernel development.
- Knowledge of one or more of the following: Microcontrollers, SoC, device drivers, hardware bringup, power management, ARM processors, performance optimization, file systems, bootloading, firmware, x86 assembly, system BIOS or hardware/software integration.
- Ability to start full-time role in 2025.
About the job
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
With your technical expertise, you will manage project priorities, deadlines, and deliverables. You will design, develop, test, deploy, maintain, and enhance software solutions.
Google is an engineering company at heart. We hire people with a broad set of technical skills who are ready to take on some of technology's greatest challenges and make an impact on users around the world. At Google, engineers not only revolutionize search, they routinely work on scalability and storage solutions, large-scale applications and entirely new platforms for developers around the world. From Google Ads to Chrome, Android to YouTube, social to local, Google engineers are changing the world one technological achievement after another.
The US base salary range for this full-time position is $136,000-$200,000 + bonus + equity + benefits. Our salary ranges are determined by role, level, and location. The range displayed on each job posting reflects the minimum and maximum target salaries for the position across all US locations. 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.
Responsibilities
- Write 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 and the impact on hardware, network, or service operations and quality.