Senior Software Engineer, Hardware Tools, Laptops and Tablets

Google Google · Big Tech · San Jose, CA +1

Senior Software Engineer role focused on developing and maintaining hardware tools and associated software for the ChromeOS ecosystem. The role involves owning the entire lifecycle of these tools, from concept to deployment, ensuring reliability and performance. It requires collaboration with various engineering teams and a strong understanding of software development principles and hardware interfaces.

What you'd actually do

  1. Lead the design and implementation of scalable software solutions for hardware device debug and control to enable automation within the ChromeOS ecosystem.
  2. Design and execute test suites (unit, integration, and system-level) to guarantee the stability, reliability, and functionality of hardware tools and associated software.
  3. Partner with firmware engineers, hardware vendors, and other software teams to integrate hardware tools and troubleshoot issues.
  4. Create and maintain documentation for software architecture, Application Programming Interfaces (APIs), and usage, ensuring knowledge transfer and long-term project success.
  5. Diagnose and resolve software bugs, and investigate issues related to test execution, hardware communication, and network functionality.

Skills

Required

  • Bachelor’s degree in Computer Science, Electrical Engineering, a related technical field, or equivalent practical experience.
  • 5 years of experience in software development, including designing, developing, and launching software products.
  • Experience with hardware interfaces (USB, I2C, SPI, General-Purpose Input/Output (GPIO)) and software libraries for hardware interaction.
  • Experience with API development paradigms (e.g., REST, gRPC) and containerization technologies (e.g., Docker).
  • Experience with Python or C/C++.

Nice to have

  • Master's degree or PhD in Computer Science, or a related technical field.
  • Experience building and maintaining developer tools and infrastructure for builds, tests, and releases.
  • Experience with Agile Software Development Life Cycle (SDLC) practices, including Scrum and code reviews.
  • Understanding of Linux kernel internals, device drivers, system services, and network protocols.
  • Understanding of data structures, algorithms, and software design principles.

What the JD emphasized

  • equivalent practical experience
  • hardware interfaces
  • software libraries for hardware interaction
  • API development paradigms
  • containerization technologies
  • Python or C/C++