Wave Computing is the Silicon Valley company that is revolutionizing AI and deep learning from the data center to the edge with its dataflow-based systems and MIPS embedded solutions. Leveraging over 400 patents, the company enables enterprises to accelerate their AI applications by easily and cost-effectively bringing deep learning to their data, wherever it is. Wave’s innovative AI system solutions provide high-performance training and high-efficiency inferencing at scale. Through the company’s MIPS IP licensing business unit, its RISC and dataflow architectures deliver efficient, scalable AI solutions from IoT edge devices to high-end networking equipment.
We are seeking a Principal Engineer, Software Tools to contribute to participate in the ongoing development of software tool for its dataflow processors (DPU) that are used to accelerate deep-learning applications. You will collaborate with a multi-disciplinary team of engineers to solve challenging optimization problems that span a broad range of technical disciplines.
What You Will Be Doing
- Design algorithms and write C++ code to implement new features and capabilities
- Specify new features and capabilities to improve user productivity or quality-of-results
- Create unit tests to validate new features and improve tool quality
- Work with Hardware & Systems teams to validate compiled code on emulator and device
Desired Skills and Experience
- Competent in one of the following areas
- Graph data structures and algorithms, partitioning in particular
- Boolean satisfiability (SAT)
- Scheduling and high-level synthesis
- Placement and routing
- Compiler optimization
- Proficient in C/C++ coding
- Competent in scripting languages, e.g. Python and Shell scripts
- PhD + 0 years of experience, MSc + 3 years, BSc + 6 years
- Competent in combinatorial optimization
- Parallel programming
- Advanced-beginner or higher in assembly programming of ASSPs
- Novice or higher in Agile software development process including source code control, continuous integration, and test-driven development.
- Attention to details to ensure adherence to architecture spec
- Initiative to identify and resolve dependencies with Hardware and Systems teams
- Collaboration skills to work closely with off-shore users and developers