Staff System Software Engineer
The Role
We at SiFive are proud to take a software first approach to develop tools and frameworks that achieve cutting edge performance without compromising quality for the SiFive processor family. SiFive designs Core IPs that deliver performance, are optimized for power and area, but do not sacrifice flexibility or programmability. Our software stack is codesigned with the hardware and developed with scalability and quality in mind. Join us to develop revolutionary software from the ground up!
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
Apply for job
To view the job application please visit sifive.wd1.myworkdayjobs.com.




Why America’s Semiconductor Manufacturing Capacity Matters