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
Why us?