Software Developer Intern, PhD, Summer 2025
Job Type
Job Details
Applications will be reviewed on a rolling basis and it’s in the applicants best interest to apply early. The anticipated application window is open until February 28, 2025, but may close earlier if all available projects are full. Applications submitted after the application window or once role is closed/projects are full will not be considered.
Participation in the internship program requires that you are located in Canada for the duration of the internship program.
This internship is intended for students in their penultimate academic year, who are pursuing a PhD degree program in Computer Science or a related field.
Google is a global company and, in order to facilitate efficient collaboration and communication globally, English proficiency is a requirement for this internship program.
To start the application process, you will need an updated CV or resume and a current unofficial or official transcript in English. Click on the “Apply” button on this page and provide the required materials in the appropriate sections (PDFs preferred):
1. In the “Resume Section:” attach an updated CV or resume.
Please ensure your anticipated graduation date (in MM/YY) is listed on the resume.
2. In the “Education Section:” attach a current or recent unofficial or official transcript in English.
Under “Degree Status,” select “Now attending” to upload a transcript.
Note: By applying to this position you will have an opportunity to share your preferred working location from the following: Waterloo, ON, Canada; Toronto, ON, Canada; Montreal, QC, Canada. Minimum qualifications:
- Pursuing a PhD program with a focus on subjects in software development or other technical related fields.
- Experience in Software Development and coding in one or more of the following: C/C++, Java, or Python.
- Experience with data structures or algorithms gathered from inside or outside of school or work.
Preferred qualifications:
- Currently attending a degree program in Canada and available to work full time for a minimum of 12 weeks outside of university term time.
- In their penultimate academic year or returning to a degree program after completion of the internship.
- Research experience in Algorithms, Architecture, Artificial Intelligence, Compilers, Database, Data Mining, Distributed Systems, Machine Learning, Networking, or Systems.
- Programming experience in one or more of the following: C/C++, C#, Java, JavaScript, Python Objective C, Go, or similar.
- Experience in computer science, with competencies in data structures, algorithms and software design.
Join us for a unique 12-14 week paid internship that offers personal and professional development, an executive speaker series, and community-building. The Software Developer Internship program will give you an opportunity to work on complex computer science solutions, develop scalable, distributed software systems, and also collaborate on multitudes of smaller projects that have universal appeal. We offer a range of internships in either Software Developer or Site-Reliability across North America, including the US and Canada. Our recruitment team will determine where you fit best based on your resume.
Google is and always will be an engineering company. We hire people with a broad set of technical skills who are ready to address some of technology's greatest challenges and make an impact on millions, if not billions, of users. At Google, engineers not only revolutionize search, they routinely work on massive 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.
- Create and support a productive and innovative team, including working with peers, managers, and teams.
- Develop scripts to automate routine tasks.
- Apply knowledge gained in computer science courses to real world issues.
- Analyze information and evaluate results to choose the best solution to effectively solve problems.