What the work actually involves
Each task is a self-contained problem package. You invent a problem that does not exist on Codeforces, AtCoder, CSES, or any other judge — not a reskinned classic, an genuinely new statement with its own constraint structure. You then write a reference solution in C++ that provably fits the intended complexity bound, a special checker for cases where multiple outputs are valid, and a test suite that kills wrong approaches: the greedy that almost works, the O(n²) that passes small cases, the solution that breaks on n=1 or on maximum-value overflow. You document the checker's logic and the reasoning behind each adversarial test so a reviewer can follow it without re-deriving your intent.
Because the output feeds reinforcement learning environments, a problem that any strong model already memorised is worthless, and a test suite that lets a wrong solution through is worse than worthless. Expect review cycles where a grader pushes back on statement ambiguity, an under-constrained checker, or a test set that doesn't separate intended from near-miss solutions.
What the screen looks for
- Demonstrable competitive programming depth — rating history, ICPC placement, or setting/testing credits on a judge, with problems you can name
- Real special-checker experience: floating-point tolerance, lexicographic-minimum requirements, any-valid-construction problems, interactive judging
- Advanced C++ specifically for validator and checker work (testlib or equivalent, generators, stress testing)
- Ability to explain constraint design out loud: why n ≤ 2·10⁵ and not 10⁶, what that bound is meant to exclude
- Written clarity, since ambiguity in a statement becomes noise in the training signal
Logistics
Fully remote and asynchronous, 15+ hours a week, contractor terms. Pay is output-based per accepted task; the $45–65/hr range is an observed effective rate, not a guarantee, and it moves with how fast you produce packages that clear review. Minimum weekly submissions apply. Hiring moves quickly — roles are often filled within 48 hours and first tasks are expected 24–48 hours after onboarding.