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.
Responsibilities:
Develop embedded firmware, bare metal tests and low-level debug tools for pre and post-silicon validation of SoCs. Exercise these capabilities on emulation, simulation and silicon platforms.
Co-work with architecture, design and verification teams and enable hardware-software co-design.
Engage with silicon design teams at a very early stage and drive integration validation and firmware features enablement as the silicon development progresses.
Work closely with post-silicon and platform hardware teams to ensure silicon enablement and support silicon debugs.
Minimum qualifications:
Bachelor's degree in Computer Science, Electrical Engineering, Computer Engineering, a related technical field, or equivalent practical experience.
4 years of experience in embedded systems or firmware development.
Experience in embedded software or firmware development in C or C++.
Experience in bringing up bare-metal environments on SoCs.
Experience in performing firmware debugging on silicon and using debugging tools (e.g., TRACE32 or OpenOCD).
Preferred qualifications:
Master’s degree or PhD in Engineering, Computer Science, a related technical field, or equivalent practical experience.
Experience in using emulation platforms for firmware enablement, validation, and debug.
Experience with ARM and RISC-V architectures.
Experience in industry standard software development practices and agile methodologies.
Understanding of SoC architecture and interfaces (e.g., Advanced Extensible Interface (AXI), Double Data Rate (DDR), Peripheral Component Interconnect Express (PCIe), etc.).
Ready to apply?
Sign up first — takes a minute — and you get Hiro’s take on this role, a resume tailored to it, and (if available) a referral from a real employee at Google. All free with your Pro gift.
Sign up to apply