Staff Software Engineer, Application Specific Integrated Circuits Firmware
About the role
MINIMUM QUALIFICATIONS:
- Bachelor's degree or equivalent practical experience.
- 8 years of experience in software development.
- 5 years of experience working with embedded operating systems.
- 3 years of experience with software design and architecture.
- Experience in C, C++ and Embedded Systems.
PREFERRED QUALIFICATIONS:
- Master’s degree or PhD in Engineering, Computer Science, or a related
technical field.
- 8 years of experience with data structures/algorithms.
- 3 years of experience working in a complex, matrixed organization involving
cross-functional, or cross-business projects.
- Experience in embedded C/C++, embedded software development,
Hardware/Software code design at the chip-level, multi-threaded designs,
machine learning and video encoding/decoding.
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.
As a part of this team, you will develop C++ code that controls and monitors
Google’s custom accelerators (ASICs), including TPUs (for machine learning) and
VCUs (for video encode/decode). You will also define the API that the rest of
the software stack uses to build planet-scale deployments of the systems that
use these ASICs. You will write code that directly handles interrupts, DMAs, and
many other hardware-centric features. You will have a direct role in the initial
debug and bring-up of new ASICs and among the first teams to use the new chips.
Additionally, our team owns simulation models that allow for early software
development pre-silicon, work closely with external vendors and many internal
teams including chip design, system software, ML supercomputer, compiler, and
system test.The AI and Infrastructure team is redefining what’s possible. We
empower Google customers with breakthrough capabilities and insights by
delivering AI and Infrastructure at unparalleled scale, efficiency, reliability
and velocity. Our customers include Googlers, Google Cloud customers, and
billions of Google users worldwide.
We're behind Google's groundbreaking innovations, empowering the development of
AI models, delivering unparalleled computing power to global services, and
providing the essential platforms that enable developers to build the future.
From software to hardware our teams are shaping the future of world-leading
hyperscale computing, with key teams working on the development of our TPUs,
Vertex AI for Google Cloud, Google Global Networking, Data Center operations,
systems research, and much more.Individual pay is determined by factors
including job-related skills, experience, and relevant education or training.
US: $207000 - $300000 (USD) + 20% bonus target + equity + benefits
Learn more about benefits at Google
[https://www.google.com/about/careers/applications/benefits/].
RESPONSIBILITIES:
- Develop firmware responsible for handling features such as power-on and reset
of the ASICs, initializing low level hardware, security, and virtualizing the
ASIC to multiple processes and Virtual Machines (VMs).
- Support trusted firmware, key management, and protect user data and privacy
(i.e. confidential compute) using advanced security technologies.
- Develop tools to update and debug ASIC firmware, while enabling chip bring-up
and hardware debugging.
- Collaborate closely with the hardware design and development teams on code
design hardware/software interface.
- Build functional and cycle-level simulators that bit-accurately model the
custom accelerator ASICs, along with tools and infrastructure to help with
ASIC design verification, tapeout, and bring-up, and develop embedded CPU
simulators as part of the full system simulator.
Responsibilities
- Develop firmware for ASIC power-on, reset, low-level hardware initialization, security, and virtualization.
- Support trusted firmware, key management, and confidential computing to protect user data and privacy.
- Develop tools for ASIC firmware updates, debugging, chip bring-up, and hardware debugging.
- Collaborate with hardware teams to design hardware/software interfaces.
- Build accurate ASIC and embedded CPU simulators and tools for design verification, tapeout, and bring-up.
Qualifications
- Bachelor's degree or equivalent practical experience.
- At least 8 years of software development experience.
- At least 5 years of experience working with embedded operating systems.
- At least 3 years of experience with software design and architecture.
- Experience with C, C++, and embedded systems.
- Preferred: Master's degree or PhD in a relevant technical field; experience with data structures and algorithms, cross-functional projects, embedded software, chip-level hardware/software design, multithreaded designs, machine learning, or video encoding and decoding.
Benefits
- 20% target bonus
- Equity
- Benefits
Skills mentioned
About Google
A problem isn't truly solved until it's solved for all. Googlers build products that help create opportunities for everyone, whether down the street or across the globe. Bring your insight, imagination and a healthy disregard for the impossible. Bring everything that makes you unique. Together, we can build for everyone. Check out our career opportunities at goo.gle/3DLEokh
H-1B sponsorship history
Historical employer filing data was found for Google. The employer record includes 57,181 historical certified applications. This is employer-level history, not a guarantee that this role currently offers sponsorship.