- 7 years of experience in consumer electronics/embedded systems design.
- Experience with C++, C, Embedded Systems, Kernel, Linux, Firmware, Device Drivers.
- Experience in computer science, with competencies in data structures, algorithms, and software design.
- Experience with interface protocols (e.g., USB, SPI, I2C, UART, UFS, PCIe) Software stacks, Drivers, and System Memory Drivers.
- Master's degree or PhD in Computer Science, Electrical Engineering, or related field.
- 9 years of experience driving ASIC architecture decisions from a software point of view.
- Experience working with hardware designers/reading schematics, ARM and/or other low-power SoC architectures, fundamentals of Bootloaders, SoC low power management, and security frameworks.
- Knowledge of interaction types between hardware and software for different types of standard hardware blocks, CPU, and accelerators.
- Knowledge of embedded systems development, RTOS concepts, device drivers and hardware/software integration, ARM or x86 assembly, system BIOS, Linux kernel, device drivers.
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.
Google's mission is to organize the world's information and make it universally accessible and useful. Our team combines the best of Google AI, Software, and Hardware to create radically helpful experiences. We research, design, and develop new technologies and hardware to make computing faster, seamless, and more powerful. We aim to make people's lives better through technology.
- Define optimized software architecture to meet use case requirements while providing options and/or trade-offs, identifying issues, and driving them to resolution.
- Influence and collaborate with company-wide stakeholders like architecture, silicon architecture, silicon implementation, silicon software, and product software engineering team to improve hardware IPs.
- Design architecture and software interfaces that enable a software programming model that can ultimately delight our application developers, and can let them make use of hardware accelerators seamlessly and timely.
- Design architecture that assures security and privacy of the data for applications that are sensitive to it.
- Work on proof of concept idea to impact silicon and software across different domains such as high speed (e.g., USB, PCIe, UFS, etc.), low speed I/O, memory and cache controller, etc.