Software Engineer, Basic Input Output System (BIOS), Platforms - Google
Sunnyvale, CA
About the Job
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.
- 2 years of experience with data structures or algorithms.
- Experience with C, C++, or Go.
Preferred qualifications:
- 5 years of experience with software development in embedded or low-level systems.
- Experience with developer operations, release management, integration testing, open source development, or Open Compute Projects (OCP).
- Experience reading and understanding digital electronic schematics to understand the underlying hardware to computer systems.
- Experience writing design documents, and working with non-technical teams to align expectations and translate functional requirements into software features.
- Experience in software/hardware integration, system bring-up, and diagnostics, as well as with BIOS, Kernel, Firmware.
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.
Boot Service Software Engineers deliver Basic Input/Output Systems (BIOS) for Google servers. The team develops and maintains a common platform for boot-related tools, in collaboration with Product teams.
The Core team builds the technical foundation behind Google’s flagship products. We are owners and advocates for the underlying design elements, developer platforms, product components, and infrastructure at Google. These are the essential building blocks for excellent, safe, and coherent experiences for our users and drive the pace of innovation for every developer. We look across Google’s products to build central solutions, break down technical barriers and strengthen existing systems. As the Core team, we have a mandate and a unique opportunity to impact important technical decisions across the company.
The US base salary range for this full-time position is $136,000-$200,000 + bonus + equity + benefits. Our salary ranges are determined by role, level, and location. The range displayed on each job posting reflects the minimum and maximum target salaries for the position across all US locations. Within the range, individual pay is determined by work location and additional factors, including job-related skills, experience, and relevant education or training. Your recruiter can share more about the specific salary range for your preferred location during the hiring process.
Please note that the compensation details listed in US role postings reflect the base salary only, and do not include bonus, equity, or benefits. Learn more about benefits at Google.
Responsibilities
- Lead BIOS development software engineering projects, scope the work needed to develop the BIOS running on SoCs to support new platforms or add BIOS features to existing systems.
- Own the delivery of software components in common software libraries or NPI-specific projects (e.g., write ACPI tables, develop code for NERF/LinuxBoot, UEFI, EDK2, Firmware, integrate Linux drivers, etc.).
- Design software components in the form of documents, plans, diagrams, gather approval from stakeholders, and resolve technical concerns, drive the implementation of said designs from start to finish, and work in partnership with cross-functional teams.
- Report status updates to leadership as needed, and escalate issues, participate in program-level meetings, report project status, and ensure completion per program timeline.