Low Level Software Engineer (SPU)
Vorticity Inc. · Redwood City, CA · Today
On-siteEngineering$130k–$190k/yrFull-time
Responsibilities
- Prototype and implement core numerical linear algebra kernels and libraries for the SPU.
- Translate mathematical algorithms into executable, performance-relevant software.
- Write C, C++, and Python reference implementations to guide hardware, compiler, and runtime decisions.
- Collaborate with hardware architects, compiler engineers, and runtime teams to evaluate algorithm–architecture tradeoffs and ensure numerical primitives map cleanly to the SPU programming model.
Core Skills
- Strong foundation in applied mathematics, numerical linear algebra, and scientific computing, with the ability to turn mathematical ideas into correct and efficient software.
- Strong proficiency in C, C++, and Python.
- Comfort working close to hardware and writing performance-critical, low-level code.
- Experience with parallel or accelerator programming models such as CUDA, OpenMP, MPI, SYCL, HIP, or similar.
- Ability to reason about memory layouts, cache behavior, bandwidth, arithmetic intensity, and parallel execution.
- Solid understanding of concurrency fundamentals, including race conditions, atomics, synchronization, and thread/process behavior.
Nice to Have Skills
- Familiarity with numerical computing libraries such as BLAS, LAPACK, FFTW, Eigen, SuiteSparse, PETSc, cuBLAS, cuSOLVER, cuSPARSE, cuFFT, or similar.
- Experience building numerical libraries, solvers, scientific computing frameworks, or HPC infrastructure.
- Familiarity with performance analysis tools or modeling techniques, including profilers, roofline models, hardware counters, or analytical performance models.
- Exposure to compilers, runtimes, code generation frameworks, or domain-specific languages for numerical computing.
- Experience applying numerical methods in scientific domains such as physics, geophysics, CFD, climate, materials, fusion, or finance.
Non-Technical Qualities
- Excellent written and verbal communication skills.
- Comfort operating in an early-stage environment where the hardware, compiler, and software stack are evolving together.
- Willingness to put in the hard work needed to bring the SPU to life.
- Above all: low ego.