C++ System Software Engineer

Enfabrica Mountain View , CA 94039

Posted 2 weeks ago

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.

icon no score

See how you match
to the job

Find your dream job anywhere
with the LiveCareer app.
Mobile App Icon
Download the
LiveCareer app and find
your dream job anywhere
App Store Icon Google Play Icon
lc_ad

Boost your job search productivity with our
free Chrome Extension!

lc_apply_tool GET EXTENSION

Similar Jobs

Want to see jobs matched to your resume? Upload One Now! Remove
Tegra Security System Software Engineer

Nvidia

Posted 3 days ago

VIEW JOBS 5/2/2024 12:00:00 AM 2024-07-31T00:00 NVIDIA is a leading artificial intelligence computing company and are paving the way with innovations in gaming, visualization, supercomputing and self-driving Nvidia Austin TX

C++ System Software Engineer

Enfabrica