Enable job alerts via email!

Software Engineer II, TPU Compiler

WeAreTechWomen

Canada

On-site

CAD 80,000 - 110,000

Full time

Today
Be an early applicant

Job summary

A leading technology company in Canada is seeking a Software Engineer to develop the next-generation technologies that impact billions of users. You will work on critical projects that involve collaboration across hardware and software, optimizing performance for machine learning. The ideal candidate holds a Bachelor's or Master's degree in a technical field and has experience in software development and data structures. This role promises opportunities for growth and tackling new challenges in a dynamic environment.

Qualifications

  • 1 year of experience with software development in one or more programming languages.
  • Experience with data structures or algorithms.
  • Understanding of debugging correctness and performance issues.

Responsibilities

  • Write product or system development code.
  • Review code developed by other developers and provide feedback.
  • Triage product or system issues and debug.

Skills

Software development
Machine Learning architecture
Compiler construction
Performance optimization

Education

Bachelor's degree or equivalent practical experience
Master's degree in Computer Science or related field
Job description
Minimum qualifications:
  • Bachelor’s degree or equivalent practical experience.
  • 1 year of experience with software development in one or more programming languages (e.g., Python, C, C++, Java, JavaScript).
  • 1 year of experience with data structures or algorithms.
  • Experience with C++, compiler construction and performance optimization.
Preferred qualifications:
  • Master's degree in Computer Science or a related technical field.
  • Experience with Machine Learning architecture and infrastructure.
  • Understanding on accelerators including to VLIW and Vector machines, GPUs, or DSPs.
  • Understanding of debugging correctness and performance issues at all levels of the stack.
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.

The TPU Backend and NPI team is at the crux of Machine learning, Compilers and TPU hardware. We collaborate with teams across hardware and software, and enable Google to have the industry's most performant machine learning chip (TPU) at the hands of machine learning (ML) modeling teams. The vast majority of all machine learning at Google flows through tools that the TPU backend and NPI team is creating, so impact is both immediate and massive. Enable a novel processor to accelerate machine learning workloads. This hardware will be deployed at scale and will power some of Google's most critical production workloads. Opportunities include performance optimization, programmability, usability and co-design of next generation hardware.

Behind everything our users see online is the architecture built by the Technical Infrastructure team to keep it running. From developing and maintaining our data centers to building the next generation of Google platforms, we make Google's product portfolio possible. We're proud to be our engineers' engineers and love voiding warranties by taking things apart so we can rebuild them. We keep our networks up and running, ensuring our users have the best and fastest experience possible.

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).
  • 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.
  • Participate in, or lead design reviews with peers and stakeholders to decide amongst available technologies.
  • Contribute to the TPU compiler for a novel processor designed to accelerate machine learning workloads. Target and compile high-performance implementations of operations at a distributed scale.

Google is proud to be an equal opportunity workplace and is an affirmative action employer. We are committed to equal employment opportunity regardless of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity or Veteran status. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. We are unable to include hyperlinks in this refined description. If you have a disability or special need that requires accommodation, please let us know by contacting our accommodations for applicants process.

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.