Job Summary: We are seeking a highly skilled Embedded Software Engineer with strong Embedded Linux knowledge to join our CPU/Platform Software Team. In this role, you will be instrumental in developing software components for RISC-V-based CPUs and platforms. You will engage in various aspects of the CPU/Platform software stack, including Bare metal, RTOS, Linux boot/kernel, reference libraries, tooling, simulators, FPGA-based bring-up, and performance benchmarks. This position offers an exciting opportunity to work in a energetic environment, collaborating with multiple engineering teams to build both hardware and software from the ground up.
Responsibilities
Design and implement software in areas such as Linux kernel support for new architectures, device drivers, OpenSBI, u-boot, and Yocto/OpenEmbedded.
Develop customized Linux distributions for embedded applications.
Deploy existing benchmarks and develop new ones based on customer requirements.
Contribute to the wider RISC-V software ecosystem, ensuring support for the architecture in various open-source projects.
Utilize emulators and real hardware to analyze and optimize software, including the use of RISC-V?s vector instructions.
Conduct code reviews for complex contributions in relevant areas.
Collaborate with architecture and hardware design teams to enhance RISC-V CPU cores, providing inputs and driving architectural decisions based on software needs.
Maintain documentation and reference implementations for customer reliance.
Release SDKs and assist customers in prototyping their SoCs for evaluation and software development.
Mandatory Skills
3 to 5 years of practical experience in embedded Linux development and debugging.
Experience in developing architecture-level code or device drivers in C for multiprocessor, multithreaded open-source kernels such as Linux or BSD, with upstream involvement.
Proven experi