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.
Minimum qualifications :
Bachelor's degree in Computer Science, Electrical Engineering, related technical field, or equivalent practical experience
Experience with software development in C / C++
Preferred qualifications :
Experience in Python and commercial debugger scripting languages
Experience in Perfetto or equivalent visualization tools
Experience in ARM CoreSight architecture and MIPI System Trace Protocols
Understanding of on-chip trace networks and reconstruction of control flow
Familiarity with gdb protocols, and commercial JTAG debug solutions
Familiarity with embedded operating systems (e.g., FreeRTOS, ZephyrOS, etc.)
Develop software tools and scripts to diagnose / analyze system issues of custom silicon. Develop a dongle-less debugger via USB / existing peripheral interface.
Present the analytics in command-line interface (CLI) and Graphical User Interface (GUI). Correlate data from different microcontrollers and power / performance measurements with correlated timestamps.
Apply machine learning on the analytics to pinpoint the root causes and the corresponding self-recovery methods.
Enable test automation to collect the analytics automatically in development test farms. Write microcontroller firmware for embedded on-chip solutions, write / extend Linux drivers, and engineer tooling to enable developer workflows.
Work with early hardware prototypes, Field-programmable Gate Arrays (FPGAs), software-simulation of SoC, and subsystem designs to verify and enable functionality.
Review hardware designs / engage in hardware / software co-design efforts to get the understanding of the debug / performance features implemented in the tools.
Bachelor's degree in Computer Science, Electrical Engineering, related technical field, or equivalent practical experience
Experience with software development in C / C++