we are looking for a Software Engineer III, Firmware, Google Cloud
Responsibilities
Build firmware running on embedded processors with limited memory footprints on the System-on-a-chip (SoC).
Design and implement multi threaded applications and device drivers running under an open source real time operating system.
Develop tools to update and debug the firmware, enable emulation, chip bringup, and hardware debugging.
Build Linux kernel device drivers to attach the SoCs to data center systems and associated C++ userspace drivers, tools and libraries, and write code to handle Direct Memory Access (DMA), interrupts, power management, SoC initialization, and error handling.
Play key roles in emulation, chip bringup, and SoC deployment, and contribute to all layers of the data center software stack to deploy SoCs to production.
Responsibilities
Build firmware running on embedded processors with limited memory footprints on the System-on-a-chip (SoC).
Design and implement multi threaded applications and device drivers running under an open source real time operating system.
Develop tools to update and debug the firmware, enable emulation, chip bringup, and hardware debugging.
Build Linux kernel device drivers to attach the SoCs to data center systems and associated C++ userspace drivers, tools and libraries, and write code to handle Direct Memory Access (DMA), interrupts, power management, SoC initialization, and error handling.
Play key roles in emulation, chip bringup, and SoC deployment, and contribute to all layers of the data center software stack to deploy SoCs to production.
Requirements:
Bachelors 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 with developing large-scale infrastructure, distributed systems or networks, or experience with compute technologies, storage or hardware architecture.
2 years of experience with data structures or algorithms.
Bachelors 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 with developing large-scale infrastructure, distributed systems or networks, or experience with compute technologies, storage or hardware architecture.
2 years of experience with data structures or algorithms.
Preferred qualifications:
Master’s degree or PhD in Computer Science, or a related technical field.
Experience with hardware design, computer architecture or chip design.
Experience with SoC power management techniques or SoC secured boot flow.
Experience developing accessible technologies.
Familiarity with hardware emulation and modeling, and PCIe/DMA/virtualization/memory modules.
Ability to work with hardware at the device level and software, especially in a lab environment.
This position is open to all candidates.