Backed by Y Combinator.
About the role
Develop high-level reference implementations of scientific applications (e.g. finite-difference time-domain methods, computational fluid dynamics, electromagnetic wave propagation, etc.) from mathematical and algorithmic descriptions. Implement and parallelize scientific applications using our proprietary Software Development Kit (SDK) across SPU simulation, emulation, and real-hardware environments.
What they're looking for
- Bachelor's degree in Computer Science, Electrical Engineering, Applied Mathematics, Physics, or related field
- Master's or PhD in Computer Science, Electrical Engineering, Applied Mathematics, Physics, or related field
- 5+ years of experience in modern C++ (CUDA C++ experience strongly preferred) for parallel programming and high-performance computing. Exceptional candidates with fewer years but strong skills are also welcome
- Ability to understand numerical algorithms and translate mathematical descriptions into working implementations. You don't need to be a mathematician, but a gradient, divergence, stencil, or multidimensional discretization should not scare you
- Ability and willingness to debug across abstraction layers, from an application or numerical algorithm down through software and into the underlying architecture
- Strong understanding of computer architecture and the interaction between software and hardware
More about this role
We're building a new class of Scientific Processing Units (SPUs) to push the boundaries of High-Performance Computing (HPC). In this role, you'll develop and optimize the core computational kernels needed to run scientific applications across a wide range of domains on our custom parallel SPU architecture, from simulation and emulation to real hardware.
You'll work across abstraction layers. Starting from the mathematics and algorithms behind an application, building high-level reference implementations, translating them into parallel kernels, and optimizing them against our architecture. You should be comfortable moving between a mathematical description of a problem, C++/Python reference code, low-level parallel software, and the hardware that executes it.
This is not an easy role. It requires passion for understanding how hardware and software work together, the ability to wear multiple hats, strong communication skills, a lot of patience, independence, and, most importantly, zero ego. Why? Because this is the first time something like this has ever been attempted.
Develop high-level reference implementations of scientific applications (e.g. finite-difference time-domain...
Browse similar: AI jobs · AI startup jobs · Startup jobs · San Francisco Bay Area