Role at a glance
- Salary
- $220K – $485K/yr
- Location
- San Francisco, United States Palo Alto, United States
- Work arrangement
- On-site
- Employment
- Full-time
- Experience
- 3+ years of professional software engineering experience with meaningful work on ML inference or high-performance systems.
Spotted an issue?
We’ll check it against the original posting.
Qualifications
Requires 3+ years of professional software engineering experience with meaningful work on ML inference or high-performance systems; familiarity with at least one deep learning framework; understanding of GPU architectures, LLM architectures, and inference optimization; and experience with GPU programming and performance work, production distributed systems, and working across Rust, Python, and CUDA/CuTe DSL. The posting also emphasizes end-to-end ownership and self-direction.
Required
- Deep experience with GPU programming and performance work (CUDA, Triton, CUTLASS, or similar).
- Understanding of modern LLM architectures and ability to bring them up reliably in a production environment.
- Experience building and operating production distributed systems under real load; performance-critical systems are ideal.
- Comfort working across Rust, Python, and CUDA/CuTe DSL.
- Familiarity with at least one deep learning framework (PyTorch, JAX, TensorFlow).
- Understanding of GPU architectures, including memory hierarchy, warp scheduling, and tensor cores.
- Understanding of common LLM architectures and inference optimization techniques, such as quantization, speculative decoding, and...
- End-to-end problem ownership and self-direction in a fast-moving environment.
Preferred
- Any other deep systems programming experience is a plus.
- ML compilers and framework internals: PyTorch internals, torch.compile, or custom operators.
- Distributed GPU communication: NCCL, NVLink, InfiniBand, RDMA libraries, or model/tensor parallelism.
- Low-precision inference: INT8/FP8/FP4 quantization or mixed-precision serving.
- Profiling and debugging tools: Nsight Compute/Systems, CUDA-GDB, or PTX/SASS analysis.
- Container orchestration: Kubernetes, GPU scheduling, or autoscaling inference workloads.
About the role
Original posting provided by Perplexity
We build and run the inference engine behind every Perplexity query and deploy dozens of model architectures at scale with tight latency and cost budgets. Our stack is Rust, Python, CUDA, and CuTe DSL - and we need another engineer to join us.
What you will work on
Examples of real work the team does:
New models support. Support transformer-based retrieval, text-generation, and multimodal models in our inference infrastructure, from weight loading, request scheduling and KV-cache management to support in API Gateway.
GPU kernels migration to CuTe DSL. Port our in-house CUDA kernels to NVIDIA's CuTe DSL so they run on GB200 today and are portable to Vera Rubin racks tomorrow.
Rust-native serving runtime. Develop our internal Rust-based inference server to solve all Python pains and keep up with rapidly growing traffic.
Performance optimisation. Profile and fix bottlenecks from network ingress through continuous batching and GPU kernel interleaving.
Reliability and observability. Build dashboards, alerts, and automated remediation so we catch regressions before users do. Respond to and learn from production incidents.
Who we're looking for
Deep experience with GPU programming and performance work (CUDA, Triton, CUTLASS, or similar). Any other deep systems programming experience is a plus.
You understand modern LLM architectures and are able to bring them up reliably in a production environment.
You've built and operated production distributed systems under real load - ideally performance-critical ones.
Comfortable working across languages and layers: Rust for the serving runtime, Python for model code, CUDA/CuteDSL for kernels.
You own problems end-to-end. You can read a research paper on Monday, write a kernel on Wednesday, and debug a production incident on Friday.
Self-directed. You do well in fast-moving environments where the path forward isn't laid out for you.
Good if you touched any of
ML compilers and framework internals: PyTorch internals, torch.compile, custom operators.
Distributed GPU communication: NCCL, NVLink, InfiniBand, RDMA libraries, model/tensor parallelism.
Low-precision inference: INT8/FP8/FP4 quantization, mixed-precision serving.
Profiling and debugging tools: Nsight Compute/Systems, CUDA-GDB, PTX/SASS analysis.
Container orchestration: Kubernetes, GPU scheduling, autoscaling inference workloads.
Qualifications
3+ years of professional software engineering experience with meaningful work on ML inference or high-performance systems.
Familiarity with at least one deep learning framework (PyTorch, JAX, TensorFlow).
Understanding of GPU architectures (memory hierarchy, warp scheduling, tensor cores).
Understanding of common LLM architectures and inference optimization techniques (e.g. quantization, speculative decoding, prefill-decode disaggregation).
About the company
Perplexity
Startup
Perplexity is an innovative technology company that specializes in developing advanced artificial intelligence solutions aimed at enhancing human-computer interaction. With a focus on natural language processing and machine learning, Perplexity empowers users to access information and insights more intuitively and efficiently. The company is dedicated to creating tools that simplify complex data and foster informed decision-making, thereby transforming the way individuals and organizations engage with knowledge. Through its commitment to excellence and user-centric design, Perplexity is shaping the future of information retrieval and analysis.