Functional Emulation Software Engineer (Entry Level)

Enfabrica logo

Enfabrica

About Us

Enfabrica is at the forefront of building cutting-edge networking silicon and system software to drive the revolution in AI and accelerated computing infrastructure at scale. We are on a mission to revolutionize AI compute systems and infrastructure through the development of superior-scaling networking silicon and software, which we call the Accelerated Compute Fabric.

Founded and led by an executive team assembled from first-class semiconductor and distributed systems/software companies throughout the industry, Enfabrica sets itself apart from other startups with a strong engineering pedigree, a proven track record of delivering, deploying, and scaling products in data center production environments, and significant investor support for our ambitious journey. Together, with a differentiated approach to solving the I/O bottlenecks in distributed AI and accelerated compute clusters, Enfabrica is unleashing the revolution in next-gen computing fabrics.

Roles and Responsibilities

  • Develop and maintain emulation model of silicon components in C++
  • Develop host interfaces, network interfaces, and data pipeline of silicon in emulation model
  • Develop host driver blocks to interact with the model
  • Develop unit tests to exercise functional emulation blocks in isolation
  • Develop model in full software stack environment testing networking protocols, Linux drivers, and ML-based application software
  • Ensure model can be used for testing RDMA NIC, NCCL, IB stack, Ethernet switch, and PCIe switch functionality
  • Work with test team to use model for developing functional and performance silicon tests

Desired Knowledge and Skill Set

  • Strong C/C++ coding skills along with Python
  • Good understanding of how CPUs, memory, DMA, networking devices, PCIe, and other server-based I/O technologies operate
  • Experience working on Linux OS; familiarity with kernel/low-level drivers is a plus
  • Knowledge of modeling and simulation environments such as QEMU
  • Good knowledge of TCP/IP and other networking protocols
  • Solid understanding of algorithms and data structures
  • Familiarity with a variety of software debugging, troubleshooting, and system profiling tools
  • 1+ years of software development experience

Location

    Durham, NC, United States

Job type

  • Fulltime

Role

Engineering

Keywords

  • Engineering
  • Full-time
  • C++ developer