Deep understanding of large model inference, including attention mechanisms and memory bandwidth constraints.
Experience with inference optimization techniques like quantization and kernel fusion.
Familiarity with stochastic systems and numerical analysis.
Proven ability to implement algorithms close to hardware, beyond high-level frameworks.
Strong programming skills in Python and at least one systems language.
Collaborative mindset with experience working across hardware and software teams.
Responsibilities
Develop algorithms for LLM inference on in-memory hardware.
Collaborate with hardware teams to influence chip design.
Design numerical methods that leverage thermal noise and analog dynamics.
Build evaluation frameworks to assess algorithm performance on hardware.
Translate model workload insights into hardware design opportunities.
Rapidly prototype as hardware evolves from simulation to silicon.
Optimize performance at both the gate and algorithmic levels.
Benefits
Opportunity to influence architectural decisions in a co-design role.
Work on cutting-edge technology in in-memory computing.
Collaborative environment with cross-disciplinary teams.
Potential for significant impact on the future of large model inference.
Full Job Description
The Role
Normal's hardware runs the most memory-bound parts of large-model inference inside memory itself, rather than shuttling weights to a processor. The software that makes this programmable doesn't exist yet in any standard form. You will develop the computational methods that make LLM inference run efficiently on it. The core challenge is rethinking how operations like attention, memory access, and long-context decoding should behave on hardware that computes inside memory, rather than adapting standard GPU kernels to a new chip.
Your job is to develop the algorithms that exploit this natively: understand which parts of LLM workloads are best suited to in-memory execution, design numerical methods that map onto the hardware's physical behavior, and validate them against our simulators and FPGA prototypes first, and against silicon as it arrives.
This is a co-design role. The hardware and the algorithms are developed in parallel, which means you will influence architectural decisions rather than implement against a fixed specification. The strongest candidates have a deep understanding of both large model inference and the mathematics of stochastic systems, and have built systems that run on real hardware. What You Will Own
Algorithm Development: Develop algorithms for LLM inference workloads running on our in-memory hardware. Success means algorithms that measurably improve LLM inference on our hardware, demonstrated in simulation and then on silicon.
Software/Hardware Co-Design: Work directly with hardware and architecture teams to shape what the chip can and should compute natively.
Numerical Methods: Design numerical methods that exploit thermal noise and analog dynamics rather than working around them.
Evaluation & Benchmarks: Build evaluation frameworks and benchmarks that characterize algorithm behavior on real hardware or simulation.
Workload Translation: Translate insights about model workloads into constraints and opportunities for hardware design.
Rapid Prototyping: Prototype and iterate rapidly as hardware evolves from simulation to silicon.
Performance Optimization: Optimize performance at both the gate level and the algorithmic level.
What Makes You a Great Fit
Deep understanding of large model inference: attention mechanisms, KV cache, long-context decoding, memory bandwidth constraints
Experience with inference optimization: quantization, sparsity, kernel fusion, or memory-efficient attention
Familiarity with stochastic systems, probabilistic methods, numerical analysis, or analog computation
Experience implementing algorithms close to hardware, beyond high-level frameworks
Comfort reasoning from first principles about what a novel substrate can do efficiently
Track record of taking ideas from theory to working implementation on real hardware
Strong programming skills in Python and at least one systems language
Collaborative instinct and ability to work across hardware, architecture, and software teams
Bonus Points
PhD in machine learning, applied mathematics, physics, electrical engineering, or a related field
Exposure to analog or mixed-signal systems, in-memory compute, or non-von-Neumann architectures
Experience working on hardware that did not yet exist when you joined
Publications or open-source work in efficient inference, stochastic algorithms, or novel computing