Functional Emulation Software Engineer
Summary
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 seeking talented Software engineers to join our team focused on functional emulation of hardware I/O devices. In this role, you will be involved with developing components required to emulate various pieces of I/O pipelines in a hardware virtualized environment. This software will provide the glue between Linux kernel drivers, networking components, I/O devices and other real HW components.
Roles and Responsibilities:
- Collaborate with Architects and Design team on new features supported in silicon
- Design and implement an 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, including experience with multithreading and multitasking software
- Experience writing Python tests. Familiarity with pytest suite is a plus
- Experience working closely with hardware engineers on component design of CPUs, memory, DMA, networking devices and other server based I/O technologies such as PCIe
- Experience working on Linux OS. Kernel/low level driver experience would be a plus
- Knowledge of modeling and simulation environments such as QEMU
- Strong understanding of TCP/IP and other networking protocols. Familiarity with serialization software such as protobuf/GRPC and Cap'n Proto is a plus
- Familiarity with variety of software debugging, troubleshooting and system profiling tools
- Experience building common software libraries used by development teams
- 5+ years of software development experience
About Us:
Enfabrica is on a mission to revolutionize AI compute systems and infrastructure at scale 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 themselves apart from other startups with a very 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 their 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.