Learn exact programs, not approximate functions.
We train models that learn the exact discrete program behind a set of examples, until the model itself converges into an exact digital circuit. This is not predictive ML. There is no acceptable error bar. A model that's 99% right is wrong, because the goal is a circuit that computes the function, not one that approximates it. (Mapping that converged circuit onto real FPGA fabric is the compiler team's job; you get it to converge.)
You'll work where deep learning, program synthesis, and logic meet: differentiable relaxations of discrete program search, optimization methods that drive a soft model toward a hard one (hardening, sparsification, generalization), and recurrent or stateful architectures that learn exact update rules and collapse cleanly into discrete logic.
The research question is sharp and wide open: can a network be trained until it doesn't approximate a circuit, but becomes one?
What you'll do.
- Design sharp experiments and run rigorous ablations.
- Diagnose whether failures come from architecture, objective, optimization, or data generation.
- Build minimal tasks that isolate missing primitives or missing inductive bias.
- Implement new training methods for discrete and near-discrete models.
- Analyze soft-vs-hard mismatches and propose ways to close them.
- Shape architectures that are both trainable and that collapse into exact, discrete logic.
- Maintain a high-quality experimental codebase in PyTorch.
What you'll bring.
- Strong PyTorch and practical deep learning engineering.
- Strong grasp of optimization, gradient flow, and training instability.
- Strong experimental discipline: clean baselines, controlled ablations, reproducibility, and reading negative results honestly.
- A bias toward small, decisive experiments over big, inconclusive ones.
- Strong coding in Python, and comfort reading lower-level code when needed.
Bonus points.
- Neural program synthesis or algorithmic reasoning.
- Formalizing problems as search over discrete structures.
- A feel for when reaching zero training loss really means the model has collapsed into an exact circuit, not a soft approximation that only looks discrete.
- Designing synthetic tasks and curricula.
- Sequence models, recurrent state, or memory-based models.
- SAT/SMT, combinatorial optimization, or search.
- Logic synthesis, circuits, compilers, or PL.
- Differentiable relaxation methods for structured prediction.
- A screenshot of your Factorio megabase