Design and implement simulation models in modern C++ (C++17/20) to replicate the functions of neuromorphic processors, CPUs, memory systems, and other components in the full SoC;
Convert technical hardware specs into high-performance, verifiable software models;
Contribute to performance modeling: simulate power consumption, latency to identify performance bottlenecks;
Work closely with cross-functional teams (Digital Design, Firmware, SDK) to ensure models reflect the real hardware faithfully;
Collaborate on expanding our SDK feature set, ensuring the usability of the simulation for external developers.
Participate in team brainstorming and contribute to other SDK development tasks as needed.
Requirements
Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or a related field;
Strong C++ development skills (including C++17/20);
Proven track record of designing modular, maintainable, and testable software architecture;
Experience in transaction-level modeling of hardware components;
Solid understanding of digital hardware fundamentals (e.g., CPU, instruction sets, memory systems, DMA);
Familiarity with hardware/software co-design concepts;
Working knowledge of Python (e.g., for scripting, automation, or SDK integration);
Great communication skills.
Nice to have: Experience working with RTL simulations, waveforms, and understanding how hardware behaves at the signal level; Experience in low-power resource-constrained embedded programming; Exposure to bare-metal firmware development, including assembly language; Familiarity with RISC-V or ARM computer architectures; Knowledge of machine learning, edge AI, and SNN (Spiking Neural Networks).
Tech Stack
Assembly
C++
Python
Benefits
Innatera is proud to be an equal opportunity employer. We welcome applicants of all backgrounds and experiences and are committed to building a diverse, inclusive, and respectful workplace. All qualified applicants will receive consideration for employment without regard to race, ethnicity, religion, gender, gender identity or expression, sexual orientation, disability, age, or other protected characteristics. If you require accommodations during the recruitment process, please let us know – we’re happy to support you.
Take ownership of simulation infrastructure quality: write unit tests, review code, and continuously improve design and maintainability.
Collaborate with cross-functional teams (Digital Design, Firmware, SDK) to ensure models reflect the real hardware faithfully.
Support early application development with accurate and configurable hardware simulation tools.