Hiring nowFormal methods and reliable reasoning

Program Synthesis Researcher

Also called Neural Program Synthesis Scientist

A Program Synthesis Researcher builds systems that generate programmes which meet a testable or formal specification. They give the company code that is shown to be correct, not just code that looks plausible.

What they do

They design and build synthesis engines that take a specification and produce a programme that satisfies it. The specification might be a set of tests, a type, a logical contract or a constraint set. They decide how a model proposes candidates and how a solver or checker accepts or rejects them. They write the correctness evaluation alongside the engine, including held-out specifications that test generalisation. They read failures closely, work out whether the fault lies in the search, the specification or the checker, and fix the right one. They also write up findings clearly for engineers who will use the engine.

What a strong hire delivers

Within the first months, a strong hire delivers a working synthesis engine on a well-chosen target problem, with an evaluation that others trust. They set out which specifications the engine handles and which it does not. They show measured specification satisfaction and how well results hold up on unseen cases. They leave behind a clear plan for what to extend next and what to drop.

How you can tell they are good

Ask them to walk through a synthesis system they built and where it broke. A strong candidate explains how they wrote the specification, how correctness was checked and how they tested generalisation beyond the examples. Ask how they would spot a programme that passes tests but is wrong. Be wary of answers that lean on benchmark scores alone or cannot explain the checker.

Why it is hard to fill

Titles vary widely. The same work is called synthesis, neural program synthesis, verified code generation or reasoning research. Few people are strong in both formal methods and modern machine learning, so most candidates lean one way. Those with a verification background often lack experience of large model training, and the reverse is also true. Good ones are usually settled and need a real research problem to move.

Where to find them

Look in formal methods, programming languages and verification groups, in university research labs and in industrial research teams. Useful titles include verification engineer, research scientist in programming languages, and theorem proving researcher. Some come from compiler or solver teams, or from frontier labs and AI start-ups working on code generation and reasoning. Others move over from security and hardware verification.

Indicative pay

Not enough published evidence yet to give a fair range for this role, which is common for work this new. We benchmark it for you as part of a search.

Interview questions for a Program Synthesis Researcher

  1. Describe a synthesis system you built. What was the specification, and how did you decide a generated programme was correct?

    A strong answer names the specification form, the checker and the limits of what it proves. Listen for honesty about gaps between spec and intent. Worry if correctness means only that the sample tests passed.

  2. How do you measure whether a synthesiser generalises rather than memorising the examples it was given?

    Good answers use held-out specifications, varied inputs, adversarial tests and checks on distribution shift. They separate satisfaction from generalisation. Worry if they only report a single aggregate score on one benchmark.

4 more questions, with what a strong answer covers, are in the Role Kit.

Job description you can post

We are building systems that generate programmes and show they are correct. We are hiring a Program Synthesis Researcher to design our synthesis engine and the evaluation that tells us whether it works. You will work closely with engineers who depend on the results.

What you will do

  • Design and build a synthesis engine that produces programmes from tests, types or formal specifications
  • Combine learned models with solvers and checkers to propose and verify candidates
  • Build correctness evaluations, including held-out specifications that test generalisation
  • Analyse failures and decide whether the fault lies in search, specification or checker
  • Document what the engine can and cannot do for the wider team
  • Propose and prioritise research directions based on measured results

What you will bring

  • Demonstrated work in program synthesis, verification or automated reasoning
  • Hands-on experience with SMT solvers, proof assistants or model checkers
  • Solid grounding in types, logic and constraint solving
  • Experience evaluating model outputs against specifications
  • Comfort with linear algebra and optimisation as used in model training
  • Clear written explanations of technical results

Nice to have

  • Experience combining language models with formal verification
  • Published or open-source work in synthesis or theorem proving
  • Background in decision theory or game theory

Free to use and adapt. If it saves you time, a link back to this page is appreciated.

Skills that matter

  • Formal verificationAdvancedProve stated properties under explicit assumptions
  • Linear algebra and optimisationAdvancedReason about matrix operations and objective functions
  • Model evaluationWorkingMeasure capability and failure modes credibly
  • Decision theory and game theoryWorkingAnalyse choices, incentives and strategic interactions

Other roles in formal methods and reliable reasoning

Related roles in other families

How we wrote this

Role definitions are our own editorial work, checked against occupational classifications, standards, research and employer pages. Titles vary by company, and this is a description of the work, not a job advert.

← Formal methods and reliable reasoningAll new job families

Start a search

Hiring a Program Synthesis Researcher?

Tell us the work. We find the people already doing it, whatever their job title says, and you meet them already interviewed for your role.