Software Engineer III, Embedded Systems/Firmware

GoogleApplyPublished 2 hours agoFirst seen 1 hours ago
Apply
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.

The Team enables networking and offload capabilities for Google and Google's cloud customers. Smart Network Interface Card/Infrastructure Processing Unit (SmartNICs/IPUs) provide novel hardware acceleration and enhanced security isolation properties for Google's workloads. Our team is responsible for software that runs on Google's entire fleet of NICs, and as such is engineered to be highly reliable, performant and efficient.

In this role, you will have an opportunity to work on the SmartNICs with this team and deliver software with tremendous impact to Google and its customers.Google Cloud accelerates every organization’s ability to digitally transform its business and industry. We deliver enterprise-grade solutions that leverage Google’s cutting-edge technology, and tools that help developers build more sustainably. Customers in more than 200 countries and territories turn to Google Cloud as their trusted partner to enable growth and solve their most critical business problems.

Responsibilities

  • Write product or system development code.
  • Participate in, or lead design reviews with peers and stakeholders to decide amongst available technologies.
  • Review code developed by other developers and provide feedback to ensure best practices (e.g., style guidelines, checking code in, accuracy, testability, and efficiency).
  • Contribute to existing documentation or educational content and adapt content based on product/program updates and user feedback.
  • Triage product or system issues and debug/track/resolve by analyzing the sources of issues and the impact on hardware, network, or service operations and quality.

Minimum qualifications:

  • Bachelor’s degree or equivalent practical experience.
  • 2 years of experience with software development in one or more programming languages, or 1 year of experience with an advanced degree.
  • 2 years of experience working with embedded operating systems.
  • Experience with Kernel, Kernel Drivers, Networking, Device Drivers, Debugging/Troubleshooting.

Preferred qualifications:

  • 2 years of experience with data structures and algorithms.
  • Experience developing accessible technologies.
  • Experience with SmartNICs.
  • Deep expertise with the Linux kernel or network device drivers, and strong expertise with the networking stack in the Linux kernel.
  • Strong expertise with C/C++, and strong focus on execution across several initiatives with attention to detail.
  • Broad systems expertise to triage and debug issues, and interest in troubleshooting systems, and passionate about ensuring things work well end-to-end, and values a generalist software engineer perspective to ensure this happens (e.g., requires program management, process improvements etc.).