SiFive is seeking an experienced System Software Engineer for our System Software group. The SiFive System Software group develops critical software components for our processors, from firmware and bare-metal to high-level OS. The team is global, spanning several worldwide sites, working together as one group. We believe that engineers create most of the value in the company. Our management chain has a strong engineering and software development background. We believe in open, honest, and direct communication; mutual respect; and seek strong communicators and listeners.
As a System Software Engineer, you will work with system architecture, hardware engineering and software engineering teams to help design and evaluate systems, including CPUs, interconnects, firewalls, and related IP blocks. You’ll work with our software group to design software implementations that take advantage of hardware features and integrate cleanly with existing operating systems, such as Linux. You’ll write software for Linux kernel, device drivers, OpenSBI, u-boot, Yocto/OpenEmbedded. You’ll be a part of creating something big, all based around the RISC-V instruction set architecture.
Responsibilities
Design, develop, upstream and release system software: Linux kernel, device drivers, OpenSBI, u-boot, Yocto/OpenEmbedded (both SiFive-proprietary and public open source)
Engage with architecture, hardware engineering, and other software engineering teams to review, and refine features
Requirements
This position involves development of software for interfaces like PCIe, Ethernet, and CXL. Expert knowledge of these is required
Experience with ACPI, UEFI, edk2, OpenBMC and data center platforms is highly desired
5+ years of experience developing architecture-level code or device drivers in C for multiprocessor, multithreaded open source kernels such as Linux or BSD, with upstream involvement
Proven experience with upstream development on high-level operating systems such as Linux
Strong communication, co-working, and listening skills
Experience working with hardware architecture and engineering teams
Experience debugging complex multicore systems
Experience debugging with GDB, JTAG and OpenOCD
Experience with git, Makefile, GNU toolchain and shell scripting
Experience with device drivers, virtualization and IOMMUs
B.Sc., or M.Sc. in Computer Science, or related discipline, or equivalent experience
Additional Information
- This position requires a successful background and reference checks and satisfactory proof of your right to work in:
- Taiwan
Any offer of employment for this position is also contingent on the Company verifying that you are a authorized for access to export-controlled technology under applicable export control laws or, if you are not already authorized, our ability to successfully obtain any necessary export license(s) or other approvals.
SiFive is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees.