Google welcomes people with disabilities.
Minimum qualifications:
- Bachelor's degree in Computer Science, a related technical field, or equivalent practical experience.
- 1 year of experience with software development in C/C++.
Preferred qualifications:
- Master's degree in Computer Science, or a related technical field.
- Experience with embedded software development in C/C++.
- Experience with hardware/software co-design at the chip-level.
- Experience with architecting scalable software, multi-threaded designs, and implementation.
- Experience with High-Bandwidth Memory (HBM), Peripheral Component Interconnect Express (PCIe), and Advanced RISC Machines (ARM).
- Experience with machine learning, security, and confidential computing.
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.
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
- Design and build firmware running on embedded micro-controllers with limited memory footprints on the accelerator Application-Specific Integrated Circuit (ASIC).
- Co-design hardware/software interface and work with the hardware design and development teams.
- Design and develop tools to update and debug ASIC firmware, and enable chip bring-up and hardware debugging.
- Build functional or cycle-level simulators that bit-accurately model the custom accelerator ASICs, build tools and infrastructure to help ASIC design verification, tapeout and bring-up, and develop embedded CPU simulators as part of the full system simulator.
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. See also Google's EEO Policy and EEO is the Law. If you have a disability or special need that requires accommodation, please let us know by completing our Accommodations for Applicants form .