About the Role In this role you are responsible for integrating our custom accelerators with a wide range of embedded systems. You will work together with the compiler and application/ML team to define and implement the interface between our hardware and target systems. What you will do: help the hardware/architecture team with defining the system architecture through virtual prototypes for next generation products develop bare metal RISC-V code to interface the automatically generated binaries with the host system develop code running on the host system (Linux, various RTOSes) connecting our accelerator to the application software help the compiler team by providing them primitives and hand written minimal examples for the compiler What you should bring in: willingness to learn new technologies and tools, and apply them quickly thorough knowledge of C and C++ experience in working with custom/basic tool chains (outside of ready-made IDEs) a good understanding of the basic technologies used in embedded systems basic knowledge of Linux/POSIX, and bare metal development Helpful but not required: knowledge/enthusiasm for other programming languages python for auxiliary tasks other languages suited for embedded development, e.g. rust (we’re not married to C, C++) scala, verilog, systemverilog for working cloesely with the hardware design team experience in driver development for Linux and/or other RTOSes experience in working with custom systems, e.g. FPGA-SOCs