C++ System Software Engineer

Remote
Full Time
Experienced

ABOUT US

We are a well funded and rapidly growing startup in the hardware and software design space, working to solve the bottlenecks in the next generation of AI datacenter infrastructure and founded by a team of experienced innovators.

SUMMARY

We are looking for talented C++ software engineers capable of writing very high performance code in the world of networking and packet processing, while driving the design and implementation of the SDK we are building for our customers.

SKILLS/QUALIFICATIONS

The ideal candidate:

  • Is a skilled C++ coder comfortable using C++17 and C++20 for writing high performance abstractions based on templates, SFINAE, concepts, and static polymorphism as necessary.
  • Has some experience implementing high performance networking code based on the Linux RDMA stack, or has had experience with designs relying on zero copy message queues and hardware.
  • Writes extensive unit tests, micro benchmarks, documentation and examples alongside the code being developed.
  • Understands the complexities related to maintaining ABI or API compatibility at library level, at the kernel and userspace level, or when interfacing with a firmware. Understands issues related to managing releases and updates in a production environment.
  • Has a strong experience working with low level Linux kernel APIs. Understands the kernel and userspace boundaries well, can use low level syscalls to interface with the Linux kernel, understands constraints posed by the scheduler and the virtual memory system. Does not shy away from using mmaps(), unix domain sockets, or debugging issues related to VDSO, libc interactions, and the ELF loader. 
  • While not a linux kernel developer, can pinpoint driver interaction issues, is comfortable diving in kernel code, and could be comfortable in adding features that require writing kernel code and working closely with our kernel engineers. Can work and improve C based libraries.
  • Can write concurrent code and is comfortable working close to the hardware. Understands the memory model, barriers, lock free data structures, atomics, and caching behavior of most popular architectures (x86, ARM), as well as some of the constraints related to NUMA, MMIO, DMA, and working with hardware devices.
  • Is comfortable fiddling with compiler options to bring up or debug problems with a specific toolchain, to better optimize our code, or to catch errors and improve our development processes.
  • Can work with different build systems, is comfortable writing or modifying scripts and tooling for release automation or running tests.
  • Has 3+ years of industry experience.
Share

Apply for this position

Required*
Apply with
We've received your resume. Click here to update it.
Attach resume as .pdf, .doc, .docx, .odt, .txt, or .rtf (limit 5MB) or Paste resume

Paste your resume here or Attach resume file

Human Check*